OllyDebug-某本地管理软件登录破解

首先,打开软件,提示我们输入密码登录系统:

随便输入错误的密码进行获取到出错关键字,如上图所示:“用户密码错误还有2机会!”
接着使用OD载入软件:

反汇编窗口->中文搜索引擎->智能搜索:


程序转入到搜索界面,Ctrl+F,搜索之前获取到得关键字“密码”,如上图所示,定位到该行,双击该行,转入反汇编窗口:

注意观察代码上文的跳转:

如上图所示,我们能看到显示错误信息的过程是从上面jnz short Protecti.00539AF3跳转而来,双击该行,或者选中该行按下F2下断点,然后F9全速运行程序:

输入错误的密码,程序会停在之前设置的断点处:


同时,在信息窗口中,我们可以看到跳转以实现,证明下一步就将跳转到提示错误信息的代码处执行:

接着,我们双击CPU状态寄存器的Z标志位,翻转Z标志位的值:

信息窗口的跳转页变为了“跳转未实现”,F9,全速运行程序:

进入程序,可以看到已经绕过了登录界面的验证,证明我们之前找到的跳转是关键跳,接着返回OD,我们的目的是禁止掉那个跳转,方法是选中跳转指令行,右键->二进制->使用nop填充:


然后保存程序:反汇编窗口右键->复制到可执行文件->所有修改:


在弹出的新窗口中,右键->保存文件:

将文件另存为就可以了,运行刚才保存的程序,可以看到不用输入密码,直接点登陆就能进入程序:

总结:
本次破解的关键点是查找敏感字符串,然后在关键字符串附件找到关键跳和关键CALL。