脱壳总结之 - upx,aspack, FSG,PECompact2.X,WinUpack脱壳

1. 单步执行法

  1. OD加载程序,F8单步步入程序,向上返回的要按键F4跳转到向上返回的下一句语句
  2. 特征代码是 popad , 执行下一句语句,会有一个很大的跳转,执行次跳转语句,即会进入压缩程序的真正入口
  3. 右键点击 用OD脱壳调试进程,下面有方式一和方式二,任选一种,点击脱壳,保存到文件夹

2. 使用工具 - LoadPE

  1. 打开目标程序的进程
  2. 右键修正镜像大小
  3. 右键完整转存

3. 命令查找法(upx,aspack)

  1. 查找命令popad
  2. 参考单步执行法

4. esp定律法

  1. 单步执行一步
  2. 选择ESP的数值,右键数据窗口中跟随
  3. 数据窗口中选中ESP的数值,设置硬件访问断点
  4. 直接运行,断点处就是要跳转到程序真正入口的jmp语句
  5. 单步执行,进入真正的入口

5. 两次内存镜像法

  1. 打开查看内存窗口,或点击快捷键M进入内存查看
  2. 在 .rsrc 处(一般是第一个)设置访问断点,并运行至断点处
  3. 在 .text 处(一般是第一个)设置访问断点,并运行至断点处
  4. 接着线下就能进入真正的入口

6. 模拟跟踪(aspack压缩壳可用)

  1. 打开内存查看窗口,找到第一个 .aspack 区段, 记录最前面的地址为addr(区段可以是对应壳的名字)
  2. tc eip<addr,此方法很慢

7. SFX

  1. 打开 选项 - 调试设置
  2. 点击SFX,选中块方式跟踪真正入口处
  3. 点击重新运行程序
  4. 注意:此方法不一定准确

8. 手动修复IAT

  1. 通过OD找到脱壳后的程序入口
  2. 随便找一个call的地址addr,OD使用命令 d addr,向上滚动,一直到上面的地数值都是0000 0000,记录当前 addr1
  3. 然后向下滚动, 一直到下面都是0000,记录当前地址 addr2
  4. 打开 Import Reconstructor软件,在IAT的RVA填入addr1-基址,size填入addr2-addr1(或者直接填1000)
  5. 点击无效函数,右键剪切
  6. 转存到文件
    OD的数值窗口打开方法,数据窗口中,右键 - 长型 - 地址

9. 最后一次异常法;

  1. 打开OD选项,选择异常,取消勾选所有异常。

  2. 记录跑飞次数 n

  3. 找SE句柄,即第 n-1 处

  4. 转到SE xxxx处下断点,sheft+F9后单步调试

10. BP VirtualFree

  1. BP VirtualFree,下断点
  2. SHIFT+F9,取消断点SHIFT+F9,取消断点
  3. ALT+F9
  4. 查找 push 8000(特征码),并运行到这
  5. 单步跟

11. bp VirtualAlloc

  1. bp VirtualAlloc 下断点
  2. SHIFT+F9运行SHIFT+F9运行
  3. 取消断点
  4. ALT+F9
  5. 向下拉,看到JMP。运行到这

12. at GetVersion

  1. at GetVersion 下断点
  2. 单步调

13. 条件断点脱壳(WinUpack)

在大跳转的代码处,程序不一定会直接跳转到入口处(比如FSG壳),会有很多次循环才会跳转到入口处,因为程序要建立输入表,此时可以看大跳转上面的一句判断语句

  1. 单步执行,然后,有一个大跳转,不会跳转
  2. 该跳转上面有一句test eax, eax
  3. 到跳转到真正入口处下条件断点 eax==0,也可能是地址([eax]==0)
  4. 下面很多循环都是在重建输入表

14. 附加数据处理

工具为 HexWorkshop

  1. 使用HexWorkshop,在原 exe 程序中寻找要附加的数据(从最后往前找,一直到全部为0的地方)
  2. 从找到的第一个不为0的地方开始,按住sheft键,一直复制到最后
  3. 使用HexWorkshop打开脱壳后的 exe 程序
  4. 在数据的最后粘贴复制的数据
  5. 另存为exe文件到文件夹
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值