暂停法的使用
1、在查找字符串的时候,经常会遇到字符串被加密的情况。因此,我们这用到暂停法。暂停法的一般步骤:
出现提示
点击暂停
显示关键调用
修改破解
2、首先载入程序,查找字符串发现无法找到有用的字符串
3、这时我们使用暂停法,重新载入,把程序运行起来。输入任意信息点击按钮,此时出现提示。
4、ctrl+k查看调用情况,发现有messagebox被调用,右击查看调用
5、观察代码发现,该call以上(到retn为止)并没有能够跳过该指令的关键跳转,因此判断这个call并不是顺序执行的,而是外部程序所调用的call。我们在这下断
6、重新载入后运行,停在断点的位置。单步后不断查看上方程序能否跳过对应代码,知道如下图所示,我们找到了对应能跳过的位置:
7、我们在对应位置下断点,同时也在关键call处下断点重新载入运行
8、此时我们发现,断在了关键call位置,这时在堆栈窗口发现可疑的字符串,事实上这是注册信息。在此我们不多做解释。
9、单步继续进行,在不改变代码的情况下,我们发现会出现错误弹窗。因此确定该位置是关键跳转。
10、修改语句,这里可以用nop填充,也可以改jnz为jz,继续单步发现达到预期效果。
11、修改保存文件。
12、补充说明:在修改某些程序版权信息和软件信息的时候,有的程序会产生自校验的问题,这时也可用暂停法处理这类问题,由于内容和以上所讲差异不大,因此在这忽略。
由于五一放假,本周的破解基础篇博客写的比较少。下次补上!!
本次博客所用到的实例程序链接:
链接:http://pan.baidu.com/s/1c2dmLFE 密码:eey5