先了解一下软件的运行:
打开后是这样的,要注册
随便输入假注册码,看他怎么响应:
会弹出一个信息窗(massageBox)提示注册失败。到这里就行了,关掉,然后用OD打开,按F9跑起来:
这里输入假码,如果点register,那么就会弹出信息窗。所以在这里要下个信息窗的api断点:
和messagebox有关的全选上,没关系。
然后再点程序的register,就被成功断下来了。
这时运行在系统领空,因为这是程序在调用windows里的messagebox功能。所以一直往下F8单步,一步步的return出来,直到来到程序领空:
这就来到程序领空啦。
注意:(从系统领空往下F8单步时,走到半路信息窗会完全弹出来,把它点个确定后继续单步,这不是程序脱离控制)
这个信息窗只是说一下注册失败,是已经判断完了。所以真正的判断代码是在这函数上面。往上翻就能看到上面的关键代码了。
这时候messagebox断点就没用了,点一下【B】把他们都删了吧。
上面有个请输入用户名、注册码的提示,应该是当没输入,点注册时会出来。在上面的call下断,为了让程序停在这里,再一步步分析下面的代码。不然截到下面也没用。。。
再点注册,程序果然停在了这call,按F8一步步向下分析:
看到这里就很眼熟了,je跳过“注册成功”,这call应该就是判断注册码的函数。按F7进去
这call里咱们的假注册码频繁出现(注意右下角的堆栈窗),应该找对了:
一直往下运行,来到末尾的return位置:
接下来要把eax置1,暴力一点直接把retn 8这行改成mov eax,1
下面一行改成retn 8
(想修改,双击代码即可)
下面的代码破坏掉了,没关系,反正咱们注册成功了不关心其他的事情。
点F9继续运行,破解成功:
最后一步,保存破解程序,
把破解的程序放到安装目录,以后点这个就可以了,重新发送一个桌面快捷方式。原程序删了也可以,留着的话记得不要点它,删除原本的进入方式(比如桌面图标)
总结:本程序关键就在于那个massagebox,看到这个特征直接下对应的断点即可,快速接近关键代码。
后记:
写这个很纠结,说的详细了就很繁琐,说的简单了小白也看不懂,所以尽量把OD的过程说的详细,其他的电脑基本操作就没讲。如果你任何不懂,就去百度一下,那些我省略掉的东西是每个电脑使用者必须掌握的。