这次我们的任务是破解这个需要特定注册码的软件,如下图所示
然后关闭软件的时候,软件会出现提示过期的对话框,如下图所示
这个时候我们还是打算从对话框入手,我们先观察软件的资源,如下图所示,我们找到了这个提示过期的对话框
然后,我们把程序放进OD,点击 所有命令,输入push 0x64,0x64是十进制的100的16进制
把搜索到的push 0x64全部下断点,如下图所示
最后我们通过一个个尝试,找到了提示过期的那个对话框,如下图所示
经过观察,我们可以得知0040670B代码是判断是否注册的函数,并且eax的值很有可能影响了程序的走向,我们下断点,如下图所示
再次运行程序, 程序断在0040670B处,如下图所示
接着,我们进入到这个函数的内部,发现最后0043174E赋值给eax,我们可以从这里入手,如下图所示
但是由于修改一行代码,剩下的代码都被修改,所以我们使用inline patch 的形式,如下图所示
这个要修改的代码,如下图所示
最后,我们用 所有修改 保存,运行程序,发现破解成功!