某打印软件,超详细追码及注册机编写
说明:1,程序无壳,为Borland Delphi ( 2.0 - 7.0 )编写
2,注册失败,无任何提示。(对话框之类的)直接退出。
3,感觉应该不是重启验证。
4,此贴面向新手,本次主要熟练按钮事件的使用方法以告别“载入OD——》搜索字符串——》啥都搜不到,我爆破鸡脖——丢回收站”的窘况。此次以Borland Delphi 程序为例,后续会出VC++ 易语言之类的。
5,对于像我们这样的新手,内存注册机先玩玩,自己编写注册机牵扯面较广,无基础有点难。为了保持对逆向的兴趣,推荐先玩内存注册机。
正文:
查壳先
既然直接退出,肯定不会有关键的字符串。那就下按钮事件。各语言按钮事件不同,此按钮事件仅适用于Borland Delphi 语言编写的程序。
自动查找下断的代码如下图。(百度可以搜的到)
程序运行妥当后,在反汇编窗口右键——》运行脚本,选择需要的脚本即可,初次使用需要打开,然后选中。稍等,断点即可下断完毕。之所以全都妥当后再下断,是怕误伤别的按钮,麻烦。
然后,就是点击注册了。
程序成功被断下,接下来就是F7进call。然后一路F8,在F8的过程中注意观察寄存器窗口和堆栈窗口。
继续F8就会看到,真正的注册码了
既然找到了真码和关键call,那就顺手做个内存注册机吧。把关键call和寄存器窗口的内容都复制下来,备用。
爱盘下载内存注册机,然后填入相应的数据即可。见下图。
一切搞定,那就开始测试注册机能不能正常工作。
续集:只用特征码,如何寻找按钮事件
链接:http://www.xiaohuilang.com/一别两宽f_xzzx.asp删除文字即可
END 0057CC60 mov edx,dword ptr
0057CC64 mov eax,dword ptr ;Tfm_Regeste.RegisterCode:TEdit
0057CC6A call TControl.SetText
0057CC6F jmp Tfm_Regeste.btRegClick
0057CC74 nop
0057CC75 nop
0057CC76 nop
0057CC77 nop
0057CC78 nop
0057CC79 nop
0057CC7A nop
0057CC7B nop
wapjltb 发表于 2019-7-15 22:05
一步步按照楼主的教程做出了注册机,但是点击获取序列号时,却总是弹出选取目标文件的对话框,不知为什么?
没有放在软件同目录的原因,有个暗桩。放在同目录出现获取不倒注册码的问题 楼主这个月就发了好几个,有时间也模仿试试 厉害了, 支持一下 感谢分享。已经试了 一次成功 学习一下 按照教程 一次性成功!!:victory: 这个需要好好学习一下 感谢分享!