今天破解的这款软件是一款自动发货软件,今天要破解的并不是这个登录窗口而是绕过它。
一、载入PEID
同样的套路,先载入PEID查壳;在这里发现软件并未加壳,也查到了该软件是由Microsoft Visual C++ 6.0编写的。
二、载入OD
在载入OD时,OD也并未发出提示,这也更加确定了软件并未加壳;所以载入OD后,我们直接Ctrl+G输入00401000来到了程序的入口处。
来到程序入口处后右键选择查找->二进制字符串,然后在HEX +02框里输入FF 25,这里的FF 25查找的是易语言的窗体事件。
来到FF 25处以后我们可以看到此处的代码为易语言体即易语言反汇编后的样子,在光标上方5行处发现了一个push 0x52031925的命令,这个命令就是用来显示初始窗口的(即前面打开软件后出现的登录界面),0x52031925即为该窗口的ID、要绕过登录窗口就要从这里解决,把这里的登录窗口ID改为其他窗口的ID,那么点击软件运行时出现的便不是这个登录窗口而是其他窗口
所以我们右键选择查找->命令(Ctrl+F)然后输入push 10001
找到了一个结果即push 0x10001,下方的push 0x52058AFA即为打开新窗口的命令,当然0x52058AFA就是新窗口的ID了,将其复制下来,粘贴替换掉刚开始找到的push 0x52031925,这时我们运行软件便不会弹出登录窗口而是0x52058AFA对应的窗口,修改完以后将其保存为可执行文件,便完成了该软件的破解。
当然,这个软件可不止一个窗口,我们可以在查找命令push 10001时右键选择查找->下一个(Ctrl+L)多找几个窗体,多生成几个破解版多找几个有用的窗口。
三、总结
这个方法仅易语言可用,但市面上多数外挂都用易语言编写,所以这个方法可以破解大多数外挂。
push窗体法好处:方便、快捷,即使遇上加壳程序也可以用内存补丁的方法解决。弊端:容易出现暗桩,如关机、蓝屏等。