2016年11月11日注册后,终于可以在论坛发帖了,浏览了一遍教程之后,赶紧找了一个程序来试试手,程序如下:
http://pan.baidu.com/s/1c1NifVq pw 8abq
无壳,Delphi编写的,最初是想爆破+追码+注册机的,于是二话不说,来OD找一下关键字.
用ascii搜索,发现根本搜不到中文的注释,一下子就陷入僵局,当时想到的是用delphi的按键事件追踪(感谢sound大佬指点,断点脚本非常好用!).
但是从上往下找的过程中,发现太多的跳转,当时思路也不够清晰,一直在找关键跳上纠结,但是之后,取得了新的突破,发现中文的字符可以找!
于是,第一个关键点
- 搜索中文字符,unicode和ascii都要尝试,这样来看大部分时候都能找到吧!如果能找到就很方便.
找到字符之后,向上搜索关键跳,发现这软件有多种不同的注册码,于是那么只需要把注册到完整版的跳改成JMP就行了,这时候,第二个关键点.
- 在已经知道注册成功后标题栏会改变的情况下,找到了关键跳,但是改成JMP之后,标题栏变了,但是实际功能未开放!
也就是说,这个软件在注册模块和功能模块很可能有2个判断,所以爆破有2个点(又感谢sound大佬指点,直接给出2个爆破地址!).
之后,自己慢慢F8 F7之后,果然也找到了另一个之前没找到的关键爆破点,但是消耗了好多好多时间(只要有疑问的地方统统下断运行一遍,太吃时间)....
这里非常想讨教sound大佬,究竟是怎样在这么短的时间里就找到第二个爆破点的??太牛了!
然后讲一下小插曲.事实上这个程序我已经购买了注册码,于是我事先知道注册码的长度,并且在反复尝试中发现,这里有个干扰,就是如果注册码长度不正确,根本走不到hwid和key的对照部分
不知道sound大佬是如何发现这个地方的(猜测是走到这里之后发现程序不跳到关键段,于是把这个判断位数的部分爆破了么?)?
至此,爆破已经成功,接下来就是追码了!
追码的部分,也就是在关键跳附近找关键call,看看是否在内存中出现了正确注册码,但是反复找附近的call,内存中都没发现相关信息.(再次感谢sound大佬指点,又直接给出了关键call内的地址!).
然后第三个关键点
- 只要是一个稍微复杂的程序,必须F7步入,查看call里面的内容,在大框架里面根本找不到内存的细节.
于是,在关键call中,发现了这个程序的核心内容.
取出hwid,经过一个过程,得出暗码1
取出输入的key,经过一个过程,得出暗码2
实际对比的是暗码1和暗码2,并不是直接拿key和hwid对比.
于是,在内存中可以获得的是暗码
由于我已经购买此软件,所以在虚拟机中修改内存,改成自己的hwid后,用自己的hwid和key尝试了一下,确实是这个流程.
至此,追码已经可以取得暗码了,但是,如何从暗码翻译到注册码,需要深入关键call分析具体算法才能得知,汇编语言对我来说太难了,我觉得做到这里就可以了.
接着,在论坛中粗略的搜索了一下注册机,发现没找到keymake的详细教程,而且反正做出来也只是暗码的注册机,一时也无法编译成key.
现在想学习制作注册机的话,请问有没有类似http://www.52pojie.cn/thread-195111-1-1.html这样的简单易懂的教程啊?keymake我毫无头绪,根本不会使用呢...
另外不知道各位是否能帮助看看,这个程序是否能简单的从暗码可以追出注册码(追不出也没关系了,感觉这个就超脱破解的范畴,需要去完整的反编译了,对我这种新人来说可能确实难度太大了)
新人初次破解中,好多点都是看着自己的机器码和注册码,再回头慢慢看程序才的出来的,最终在虚拟机修改内存后把hwid和key的暗码对上之后,还是非常有成就感的!!
下面几个是破解过程中的提问帖,再次感谢所有帮助过我的人,谢谢大家!
http://www.52pojie.cn/thread-553349-1-1.html
http://www.52pojie.cn/thread-554553-1-1.html
http://www.52pojie.cn/thread-555823-1-1.html
|