最后一贴
恒大的VIP1的第一期看完了,其实并没有把每一课都对应这做成一篇图文,没必要,有的思路上没有什么需要拓展的就直接忽略了
正文开始
载入 OD ,F9 运行,直接终止,那就要在退出的时候下断
重新载入后右键,查找,所有模块间的调用
来到这里,太多了,点击上面那个横条,做个排序
当看到 msvbvm60.__vbaEnd 时就找到退出程序的地方了
选中第一个右键,在每个调用到 __vbaEnd 上设置断点,这样就全部下好了
F9运行程序,这时会断在第一个断点
可以看到这些 CALL 是有跳转可以跳过的,我们把在 CALL 上的断点全部改到跳转上
先改这两个,运行的时候 双击右边寄存器窗口的 Z 标志位,更改跳转状态
双击前
双击后
这证明这种方法是可以跳过这个 CALL 的
注意这一个,原本跳转是实现的,改了以后反而不实现了,所以不用改这个
一共有这一些是可以通过跳转,跳过 CALL 的
把这些全都改成 jmp ,注意保存的时候选择所有修改
然而发现,当我们可以正常打开了,却会触发关机这个暗桩
现在运行里输入 shutdown -a 取消关机
发现它是在桌面创建一个名为 register 的批处理命令
找到刚才保存出来的,载入 OD
搜索“register”
找到这个,果然是它
双击找到,下个断
F9 运行,断下来,注意右上角寄存器窗口,那个关机命令
F8执行,来到了栈窗口
选中那个命令,右键,数据窗口中跟随
在数据窗口改成 unicode 模式,选中这句命令,不要多也不要少
摁下空格召唤编辑窗口,勾上保持大小,改成一串0
直接在数据窗口右键,保存
这样的话他创建的register文件里的命令就成了一串0,也就没有用了