吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2079|回复: 15
收起左侧

[CrackMe] 自己写的CrackMe2.0,求大神逆向分析出注册机

[复制链接]
qcz00622 发表于 2020-7-30 11:30
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

最近在学习脱壳破解小程序,学习了不少知识,但又感觉欠缺不少,所以自己写了一个crackme,破解起来很简单,但是想根据OD中的代码来写出注册机,感觉无从下手,请大神帮忙写出附件的注册机的逆向详细过程,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1吾爱币 +6 热心值 +1 收起 理由
CrazyNut + 6 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

qzhsjz 发表于 2020-7-30 12:42
本帖最后由 qzhsjz 于 2020-7-30 12:43 编辑

看图标得出是VB程序,所以直接上VB Decompiler Pro。

可得VB代码:
[Visual Basic] 纯文本查看 复制代码
Private Sub Command1_Click() '402290
  loc_00402319: var_40 = Text1.Text
  loc_00402357: var_eax = %fobj
  loc_0040236C: var_8C = "Seven"
  loc_0040238E: var_18 = var_40 & "Seven"
  loc_004023A3: var_eax = call Proc_1_0_4025C0(var_18, Me, edi)
  loc_004023AD: var_1C = call Proc_1_0_4025C0(var_18, Me, edi)
  loc_004023B9: var_8C = var_1C
  loc_004023F1: var_2C = Mid(var_1C, 8, 16)
  loc_00402419: var_40 = Text2.Text
  loc_0040243D: var_4C = var_40
  loc_0040245A: var_eax = %fobj
  loc_00402487: If (var_40 = var_2C) = 0 Then GoTo loc_004024DB
  loc_004024C0: MsgBox("Congratulations!", 0, var_64, var_74, var_84)
  loc_004024D9: GoTo loc_0040252B
  loc_004024DB: 'Referenced from: 00402487
  loc_00402512: MsgBox("Try again!", 0, var_64, var_74, var_84)
  loc_0040252B: 'Referenced from: 004024D9
  loc_0040253E: GoTo loc_00402571
  loc_0040254C: var_eax = %fobj
  loc_00402570: Exit Sub
  loc_00402571: 'Referenced from: 0040253E
End Sub

根据这段VB代码,可知:
关键判断点在var_40 = var_2C
然后var_40的来源是Text2.Text,也就是用户输入的SN,所以var_2C是用来判断的正确SN。
再来看var_2C的来源:
var_2C = Mid(var_1C, 8, 16) = Mid(call Proc_1_0_4025C0(var_18, Me, edi), 8, 16) = Mid(call Proc_1_0_4025C0(var_40 & "Seven", Me, edi), 8, 16) = Mid(call Proc_1_0_4025C0(Text1.Text & "Seven", Me, edi), 8, 16)
而Proc_1_0_425C0根据名称可以判断是MD5,所以整个注册码的公式应该是:
注册码 = 取8-16位(MD5(用户名 & “Seven”))。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 4吾爱币 +5 热心值 +4 收起 理由
leroy特洛伊 + 1 + 1 牛逼啊 老哥
qcz00622 + 1 + 1 用心讨论,共获提升!
lvyiwuhen + 1 + 1 热心回复!
CrazyNut + 2 + 1 用心讨论,共获提升!

查看全部评分

ttbbs 发表于 2020-7-31 07:53
qcz00622 发表于 2020-7-30 14:31
学习了,所以逆向获取注册机的思路就是先得知程序的编译环境,然后用对应的反编译工具去一点点的获取作者的 ...

不完全正确,其实也可以用debug一步步跟算法
 楼主| qcz00622 发表于 2020-7-30 14:31
学习了,所以逆向获取注册机的思路就是先得知程序的编译环境,然后用对应的反编译工具去一点点的获取作者的编程思路,然后得到最后的算法!
天使无声 发表于 2020-7-30 15:37
qzhsjz 发表于 2020-7-30 12:42
看图标得出是VB程序,所以直接上VB Decompiler Pro。

可得VB代码:

牛逼!不过mid函数不是取8-16位。是从第8位开始,取16位的长度。
qzhsjz 发表于 2020-7-30 15:42
天使无声 发表于 2020-7-30 15:37
牛逼!不过mid函数不是取8-16位。是从第8位开始,取16位的长度。

哈哈,不太懂VB其实,至今没写过一个VB程序
moloi 发表于 2020-7-30 16:03
强啊大苏打啊
Myhost996 发表于 2020-7-30 17:38
强势围观一波。。
绫音 发表于 2020-7-30 18:58
厉害啊  小白看蒙!
anxiedong 发表于 2020-7-30 20:02
用心讨论,共获提升!
EwigLicht 发表于 2020-7-30 20:13
啊这,围观大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-17 00:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表