压缩壳脱壳方法

前言

练习了一些简单的压缩壳的脱壳, 总结一下压缩壳脱壳操作.

记录

查壳工具

Detect-It-Easy-master 比 PEID0.95好, 虽然有些壳也认不出来.
即使查壳工具认不出来, OD载入后, 也能看出OEP不是正常的入口. 有转到后面进行解压的过程.
使用查壳工具是为了确实是否有壳, 没有其他用途. 不用也是可以的, 反正都是手工脱壳.

anti-debug

StrongOD插件可以不用的, 先从插件目录移除.

有的壳代码中有anti-debug代码, 可以去看雪上找HideOd插件(hideod.rar), 加入OD插件目录, 启动OD后, 点击hideOD设置, 将反anti的选项都勾上.

ESP定律

F7, F8都可以走到OEP, 用的时间多一些.
大部分压缩壳, 用ESP定律可以找到OEP.

在OD中走不多远, 可以看到ebp入栈.
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
当程序跑起来后, 停下来时, 就到了OEP附近, 走不多远, 就跳到了OEP.
经常逆vc的程序, 走到OEP时, 就认识了.
这里写图片描述
然后dump.

手工F7, F8找OEP

有的压缩壳, 无法用ESP定律
* 没有push有趣的ebp, 也没有pushad
* 也没有转到其他的跨段节去解压, 都是在一个节内(e.g. 0040xxxx)解压和跳转.
这时, 手工F8, F7去跟吧, 当有长跳转时(JMP或CALL), 注意一下, 看是否为正常的OEP代码.

DUMP插件

脱壳要在x86环境下脱壳(因为脱的是x86程序).
看雪上有ODdump插件, OllyDump.rar
走到OEP后, 用OdDump插件脱壳, 脱2个版本(重建导入表和不重建导入表), 看哪个能运行就用那个版本, 如果都能用, 就选不重建导入表的版本.
这里写图片描述

PE减肥

大部分场景对程序的size要求的都不严格, 脱壳后, 能正常运行就可以.

当脱壳完成后, 可以尝试给PE减肥, 不一定会成功(减肥后运行PE报错).
减肥是可选的, 减肥工具用PETools.
这里写图片描述
这里写图片描述
这里写图片描述
将壳自己用的节删掉, PE体积就小了, 看看是否能运行. 不能运行就不要减肥了.

PE重建

PE重建也是为了减肥, 也是可选的.
用PETools来进行PE重建, 在看雪大礼包2010中有.
这里写图片描述
PE重建后, 也有可能运行报错. 如果报错, 就不用重建了.

脱壳后的PE头参数校对

当程序到达OEP时, 先脱壳, 然后留在那, 等PE减肥和PE重建时, 打开OD中的MemoryView, 找到.text中的PE头信息, 和PETools的可选头信息对一下, 如果PETools的可选头信息不对, 按照OD显示的PE头信息修正一下.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值