这一个很简单的程序,无加壳无加密,但爆破的思路都是一样的。
利用OllyDbg对程序中的Serial功能进行爆破,并用爆破后的程序覆盖原程序。爆破成功后,输入任何序列号都会弹出成功信息。
正常情况下,输入一个错误序列号后,点击”Check it Baby!”按钮,会弹出报错:
这里我们利用OllyDbg对其进行爆破,使得无论输入什么,都显示成功。
先找失败/成功的字符串
失败时提示的是Try Again,那么用OllyDbg打开程序后,右键->search for->All referenced string 参考文本字符串
打开后拖到最底下:
发现有好几个Try Again,也有几个Good job dude的成功信息。那么我们从下往上试试看。
最下面的Good job dude前面对应着0042FB0C,即追踪0042FB0C处字串,右键,Follow in Disassembler
追踪后发现上面有一个跳转指令,通过跳转指令后会跳到Try Again的失败信息,如不跳转,则是Good job的成功信息。所以,将此跳转指令爆破,就可以直接按顺序运行到Good job。
这里我们按F2下个断点验证一下:
运行后发现程序一直执行,并没有停下来,可以判断这里不是我们想要爆破的地方,所以取消断点,去验证第一处的成功信息。
即追踪0042F4DE处字串,发现一个跳转指令,同样的,设置断点验证
程序没有执行到底,可知这条指令是我们要爆破的目标。不跳转则继续下面的指令,显示成功信息。
进行爆破
双击此条指令,将弹窗里的文本改为NOP:
点击Assemble:
运行:
无论输入什么,都显示Good job
爆破成功!
最后记得保存噢