目录 Table of Contents
基础脱壳教程3:手脱NSPACK(北斗)
1.nSPack 1.3 -> North Star/Liu Xing Ping
OD 载入, 发现入口点前两句是 pushfd, pushad
单步走一下, 到 call 发现 ESP 突变
然后尝试 ESP 定律法脱壳
LordPE 脱壳
修正镜像大小, 完整转存
输入表重建程序 修复 OEP 自动查找
当然我们也可以用单步跟踪法, 里开头比较近的那个 call 我们 F7 跟进去
模拟跟踪法也可以
两次内存镜像, 发现程序段找不到 .rsrc
PE 程序是从上向下解压的, 我们以前用内存镜像法是先在 .rsrc 下断点, 然后再到
00401000 下断点, 说明它把资源段加载完毕之后, 代码段当然也加载完毕
我们这里没找到资源段, 所以我们直接在 code 下断点
**markdown内存镜像法的原理在于对于程序资源段和代码段下断点, 一般程序自解压或者自解密时, 会首先访问资源段获取所需资源, 然后在自动脱壳完成后, 转回程序代码段. 这时候下内存一次性断点, 程序就会停在 OEP 处.**
2.NsPacK V3.7 -> LiuXingPing *
这个壳比较特殊, 北斗使用 VC++ 写的,
所以我们可以直接下 GetVersion 这个断点,
然后在 retn 处下断点,
然后取消断点, 然后向上看, 程序 OEP 就在上面.
这种方法适用于北斗 3.0 之前的壳
at GetVersion
EP 区段显示 NSP 0