关于破解的教程,其实论坛里面有很多的了,我们在破解软件时候其实都离不开一个工具 就是OD,相信大家都很熟悉吧?
image.png (34.4 KB, 下载次数: 0)
下载附件
2022-5-30 18:27 上传
可以对比看下 自己电脑里面的OD 是不是这四个?那么它们分别有什么关系和作用呢?
先来看cpu 当大家载入软件时候,你会发现很多代码反汇编还有机器码在里面疯狂展现,光标从上到下跑,没错,CPU在运算执行命令。
比如在对比真假注册码时候,CPU能计算出来真码是多少,但是想要跟你输入的注册码对比真假,还需要寄存器FPU的帮助,比如先把假码放入寄存器EAX,然后CPU自己去计算出来真码,最后再到FPU里面拿出假码来一比较,欧耶!
总结,CPU就是大脑运算,FPU就是寄存器。
最有意思的就是堆栈,我觉得它也是寄存的功能,它具体功能我还没搞懂,请大牛指教!
-----------------------------------------
上面我讲了一堆,到底是为什么呢?
因为今天分享的这个cm的破解,跟普通的不太一样,我们来看下。OD载入。运行起来。
image.png (34.66 KB, 下载次数: 0)
下载附件
2022-5-30 18:47 上传
随意输入注册码,然后搜索二进制码 FF55FC5F5E 然后F2下断点(之前我的文章有讲过为什么搜索这个,感兴趣的可以去看。)
image.png (19.28 KB, 下载次数: 1)
下载附件
2022-5-30 18:50 上传
然后点击“注册”按钮,成功断下来了,我们F7跟进去,你会发现很有意思的现象。在里面你根本找不到关键跳!而且不管怎么改,就是错误的提示!
image.png (11.75 KB, 下载次数: 0)
下载附件
2022-5-30 18:52 上传
这个作者就很有意思了。因为他利用了大家破解的思维惯性! 什么意思呢?大家想一下,咱们小白在破解的时候,会搜索字符串,还会下F12断点,就是为了能在错误提示的地方停留下来,然后在它的上面找关键跳,绕开错误,跳向正确。对不对??但是你来看看,这个代码,正确和错误都在一起,而且根本没有关键跳能跳开,即使你修改了错误提示的窗体也一样错误。说明其实这里根本就是一个迷魂阵!真正算注册码的地方根本不在这里!
上面我讲的那个例子,大多数软件计算和对比真假码时候,流程就是CPU先把你输入的假码寄放在FPU,然后CPU腾出手来算出来真码,最后再从FPU取出假码,整个过程都是在CPU的线程里面对比完成的。如下图所示:
image.png (37.91 KB, 下载次数: 1)
下载附件
2022-5-30 20:27 上传
但这个软件注册码验证的流程是这样的
image.png (46.13 KB, 下载次数: 1)
下载附件
2022-5-30 20:40 上传
看懂上面的以后,再来分析这个软件的破解方法。
image.png (25.17 KB, 下载次数: 1)
下载附件
2022-5-30 20:42 上传
image.png (16.89 KB, 下载次数: 0)
下载附件
2022-5-30 20:43 上传
注意到上图中那个push的了吗?它push 压栈了一个地址00401495,Ctrl+G来到这个地址看下。
image.png (13.24 KB, 下载次数: 1)
下载附件
2022-5-30 20:50 上传
注意这个call,跟随进去看下,你会看到 注册码的算法。
image.png (15.03 KB, 下载次数: 0)
下载附件
2022-5-30 20:52 上传
如果你此时想跟我一样下F2断点,那么就会这样!
image.png (24.05 KB, 下载次数: 1)
下载附件
2022-5-30 20:53 上传
image.png (15.29 KB, 下载次数: 1)
下载附件
2022-5-30 20:55 上传
根本无法断点,是不是跟我上面那个流程图一个意思?那怎么办? 很简单,我们下内存断点就可以了。因为它是在内存里面的。还记得那个push压栈了一个地址00401495么?等它把地址压进了堆栈,我们在堆栈右键跟随。
image.png (28.47 KB, 下载次数: 1)
下载附件
2022-5-30 20:59 上传
这样找到那个call 00401258 以后 跟随进去,下内存访问断点就可以了。运行一下。
image.png (30.8 KB, 下载次数: 0)
下载附件
2022-5-30 21:02 上传
破解用到的cm,我放在下面啦。大家可以试试,练练手!相信对大家破解思维的提升会非常有帮助的!
()CrackMe.zip
(264.56 KB, 下载次数: 92)
2022-5-30 21:04 上传
点击文件名下载附件
下载积分: 吾爱币 -1 CB