一、破解过程
1、点击主界面上的开始,会提示:
提示
我们可以看到关键字“注册”。
2、载入OD运行,搜索字符串“注册”
结果1 结果2
会发现,有两块类似的结果。那么从结果1还是结果2入手呢?视频中说是从结果2入手。我认为可以分别在这两处下断点,然后再点击“开始”,看断在哪里,就从哪里入手。
会断在结果1那里。
断在结果1
那我就从这里开始了,不按照视频中的步骤来了。会发现关键跳
0040C4D4 . /74 09 je short 0040C4DF
nop掉关键跳,还是会提示未注册的,而且程序的功能也是不能用的。按照视频中的说法,这就是一个“自慰跳”,即控制着关键代码,但是软件的功能是不完整的。此时,可以去找找影响关键跳的关键call等。
3、发现关键call上面是这样一句代码:
0040C46E . 833D 1E4D5500>cmp dword ptr ds:[0x554D1E],0x1
这个和前面一集视频中遇到的情况是一样的:[0x554D1E]的值影响了关键跳,并且这[0x554D1E]是一个常量。所以直接搜索常量,并在所有找到的结果上设置断点
在找到的常量设置断点
还是把那些代码中mov的给去掉断点,随后运行程序,遇到断下的,把cmp里面的1改为0,里面的0改为1。
修改1 修改2 修改3 修改4 修改5
4、点击软件主界面的“注册”,程序又会断下来,还是更改。
修改
此时,软件的功能是已经能够使用了。
5、软件的标题栏中还是显示的未注册,回想在第2步中有出现了2个结果,第3、4步是从结果1入手的。那么现在可以去试试结果2了。下断点,但是运行却不会断下了。因为标题中出现的未注册,肯定是软件刚开始运行时做的判断。所以得重新载入,得把前面做的修改保存下来。
6、因为一般保存出来的时候改了一个新的名字,所以得重新设置断点。要是不想重新设置断点,可以把原来软件的exe文件备份一下,把保存处理的文件直接用原来软件的exe文件名。
7、断下了
因为跳过了已注册,所以nop掉这个跳转。但是这还不够,因为在下面有一个循环,得需要nop掉。这里是这个软件非常有意思的地方那个,直接nop跳会进入循环,非得把最下面的jmp给nop掉才行。
nop掉jmp跳出循环
F8往下会找到那个未注册,把跳转改了。
此时,软件的界面就是注册的了
8、在关闭软件后,会打开浏览器。可以把打开的网址给复制出来,在OD中进行搜索,然后把这网址的字符串全部改为0。
二、总结
1、最大的感受是对于第7步中那个循环的处理。我自己是不太敢直接把最后的jmp给nop掉。破解,得敢于做试验。在视频中,作者经常说“经过试验,这个call不是关键call”。
网友评论