基础脱壳教程14:手脱ASPACK的变形壳

我们先用 ASPACK 给 qqspirit.exe 加下壳, 然后再用变形工具变一下

PEid 查壳, 啥都没有, EXEinfo PE 查壳, 啥都没有

看下 EP 区段, 写的是 .aspack, 说明这个壳还是 aspack

有时候查壳发现什么也没有的话, 你可以通过 EP 区段来判断, 不过这也不一定准确, 因为区段可以改

OD 载入, 刚开始就是 pushfd, 我们单步走一下

关键句 call 下面 ESP 变红, 我们尝试 ESP 定律法, 然后 shift+F9 发现程序直接跑飞

所以我们还是单步跟一下吧, 观察第一个 call, 发现它很近, 我们 F7 跟进去

近 call 我们 F7 跟进去, 远 call 我们就 F8

然后单步, 又发现一个 call, 同样是近 call, 我们跟进去

OEP A86D, 有一个无效的函数, 我们直接剪切

然后我们 PEiD 查一下变形主程序的壳, 也是什么都没有, EP 区段显示的是 "皇后", 很奇怪

OD 载入, 一进来就是个大跳转, 下面还有些未知命令, 我们先单步跟一下

尝试用 ESP 定律法, 一个向上的跳转, 我们直接在下面 F4, 程序跑飞

说明在刚才的地方不能在下面 F4, 那我们跟上去看看, 发现这是个来回的循环, 而且在这个向上的跳转不能 F4, 看上去是个死循环

但是我们发现程序是可以正常运行的, 我们在向上跳的那一句下个断点, F9 运行, 多点几次 F9, 发现它一会向上跳, 一会向下跳

说明这不是完全的向上跳, 有时候它会向下跳

可以试下实现它向下的跳转, 其实也会来回跳

这时候我们用最后一次异常法的思路, F9 数多少次之后程序跑飞, 发现第 58 次之后程序运行起来

所以我们 F9 点 57 次, 57 次之后我们取消断点, 让这个跳转实现一下, 单步跟发现很长一段的 nop, 直接单步走就行

OEP 22C0

主要是如何处理这个跳转, 仔细想想, 程序能运行起来, 说明它这个不可能是死循环, 肯定有一次跳到不同的地方去