脱壳手把手入门(详细)——aspack压缩壳

00.aspack.exe

程序下载链接:https://pan.baidu.com/s/1bqLALZS7wx2Cn4iw7qUtWw
提取码:f549

1 寻找OEP

  • ESP 定律(单步步过 pushad,对 ESP 下硬件访问或写入断点,popad 后会再次访问到 ESP 的地址,所以会断下,OEP就在附近了)

在这里插入图片描述

  • F9运行,断下

在这里插入图片描述

  • push+ret => jmp

在这里插入图片描述

  • 进入这个 call 查看(根据一些程序的特征定位,也可以找到OEP,这里进入这个call确认一下)

在这里插入图片描述

2 Dump 内存到文件

  • 使用OD,在 OEP 处 -> 使用OllyDump 脱壳调试进程

在这里插入图片描述

  • 会新生成一个文件,此时再用 ImportREC 修复IAT

3 修复文件

在这里插入图片描述

在这里插入图片描述

  • 但此时打开这个 00.aspack.dump_.exe 还是出错,因为没有关闭随机基址,再使用 010Editor 关闭随机基址即可(关键点 4081

方法二(特征码搜索寻找OEP)

  • 先让程序运行,再OD中查看模块窗口,双击进入exe模块

在这里插入图片描述

  • 可以看到,该程序对 IAT 的调用方式(FF15…)

在这里插入图片描述

  • 同时可拖入PEiD,查看其链接器版本,基本能确定是VS编写的程序

在这里插入图片描述

  • 从而可以搜索特征码,寻找OEP(call+jmp)

    • OD中快捷键 Ctrl+B:E8 ?? ?? ?? ?? E9

在这里插入图片描述

  • 下图中找到的 OEP,和刚第一种方法搜到的一样

在这里插入图片描述

  • 后续 Dump 和 修复 和上面的相同(注意设置硬件执行断点,下次进行 Dump 时可断在刚找到的OEP)

特征补充

① 二进制特征

​ 比如 release版的VS2013 是:

​ oep入口特征:E8???E9

第一个CALL内的特征:5657BF4EE640BBBE0000FFFF3BC7 

② API特征

​ 比如 release版的VS2013 的第一个API调用是:

	GetSystemTimeAsFileTime 

​ 比如 vc6.0 的第一个API调用是:

​ GetVersion

​ 比如 Delphi 程序第一个API调用是:

	GetModuleHandleA

③编译器特征

IAT调用不同的编译器生成的调用机器码是不一样 

vs -》 call [IAT地址] -》 FF15 xx xx xx xx

delphi -> jmp [IAT地址] -》 FF25 xx xx xx xx

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值