第一期 20 退出暗桩的解决办法

我们解决一下上节课的暗桩, 关于暗桩你可以理解成一些隐藏的功能.

如果大家上节课找到了很多窗口, 就会发现有的需要父窗口, 有的可以打开, 唯独我们的 push 0x52010001 也就是我们的 2 号窗口是打不开也不提示的, 那我们打开任务管理器观察一下它.

打开任务管理器, 运行我们的 2 号窗口程序, 发现它会自动退出

那我们 OD 载入看看它是不是正常退出, F9 运行, 过一会发现程序退出了.

我们下个 API 断点, 让程序在调用退出函数的时候断下来.

重新载入, 插件 > API断点设置工具 > 常用断点设置 > ExitProcess, 然后确定, 我们 F9 运行

程序暗桩调用退出的时候被我们拦截了

我们在堆栈窗口中点击 返回到 222淘小?004D0660 来自 222淘小?0056371F, 然后右键 在反汇编窗口中跟随 跟进去

不管你下的是什么 API 断点, 我们都在它下面最近的 返回到反汇编窗口中跟随, 我们就回到程序调用 API 的地方了

上面正好有个关键跳, 我们下断运行

跳转未实现, 我们让它实现, 直接改成无条件 jmp

搞定~

这节课的暗桩是那种比较友善的, 只是退出程序而已, 以后可能会遇到更加危险的暗桩, 所以 push 窗体过后请做好准备~