The046. 反汇编练习,适合破解新手的160个CrackMe [002] 之 [爆破+注册机]

查看 82|回复 9
作者:chuiyan121   

The046. 反汇编练习,适合破解新手的160个CrackMe [002] 之 [爆破+注册机]
反汇编实战练手,下面是我的学习记录,如有疑问欢迎交流指正。^_^
被试程序合集下载:帖子https://www.52pojie.cn/thread-1598336-1-1.html
0x0、查壳,无壳程序,VB语言编写。

0x2、熟悉程序运行流程。打开程序,除了用户名什么都不输入时提示error’5’以外,输入任何假码,都提示You Get Wrong Try Again。

0x3、OD载入,F9运行,输入假码,提示You Get Wrong Try Again。

0x4、F12暂停程序,Alt+K打开调用堆栈窗口,发现VB程序跟C++不一样,没有MessageBox函数调用,查询资料发现rtcMsgBox就是VB的弹窗函数。或者还有一个傻办法,只有00402622这个地址比较像程序领空的,就选它了,右键显示调用。

0x5、反汇编窗口来到0040261C处,F2断点。向上翻,发现了You Get Wrong提示在004025E5处,此处由一个跳转跳过来,继续往上,又看到You Get It的成功标志,上一行一个JE跳转,很明显了,不让它跳转就成功了。

0x6、将0040258B的JE跳转NOP掉,保存为1.exe,运行。除了用户名什么都不输入报错外,输入任何字符都成功,爆破完成了。

0x7、下面来制作注册机。OD载入原程序Afkayas.1.Exe,来到关键跳(上面有到关键跳的方法)。

0x8、向上翻,来到程序头,F2下断点,输入假码,程序会运行到00402310断点处如下。

0x9、F8边走边看,看到了一些关键信息,我也不知道怎么标注才是对的,避免误导大家,我就不分析代码了。
关键1 取我们输入的账号

关键2 真码???

关键3 真假码出现了

关键4 eax=AKA-585235,压入栈。感觉就是真码了。

0xA、后面也没有发现大的值的变化,也许是我发现不了吧,先将【AKA-585235】带入程序试试。居然成功了。

0xB、祭出注册机编写器,F8打开内存注册机,添加数据如下(注意一定要选择宽字符串,因为真码是UNICODE格式,我刚开始没选宽字符,获取的ASCII字符串,只能获取到真码的一个字符,折腾了半天,大家不要走弯路),生成注册机123.exe。

0xC、运行注册机123.exe,输入假码,提示错误,同时弹出了注册机界面,显示了真码,复制到程序即可注册成功。


注册机, 程序

ab1988520   

先收藏,后面慢慢学习
jedi   

谢谢lz分享,学习下载
allycn   

学习中,谢谢分享
zzy1190   

先收藏后学习
x2005y   

这个可以有,谢谢分享!
abstao   

好东西,多谢分享
caimidouzi   

学习中,谢谢分享
HamHam   

又是学习课程,感谢。
lr957   

好教程,值得学习,太感谢了!
您需要登录后才可以回帖 登录 | 立即注册