吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5693|回复: 6
收起左侧

[分享] [转]也谈PE-Armor0.49记事本的脱壳经历

[复制链接]
wuhanqi 发表于 2010-3-2 06:19
本帖最后由 wuhanqi 于 2010-3-2 18:00 编辑

标 题: 【原创】也谈PE-Armor0.49记事本的脱壳经历
作 者: 不问年少
时 间: 2010-02-26,16:28:25
链 接: http://bbs.pediy.com/showthread.php?t=107842

这两天研究这个壳,让我对壳的认识有了进一步的加深,特将脱壳的过程附上,与大家共勉,在此先得感谢每位指点我的人,学到新知识的确是让人开心的一件事!

这个壳本身到OEP不难,主要是壳的修复比较麻烦,因为这个壳抽掉了OEP,并且对CALL [XXX]的一些地方进行了硬编码,变成了CALL XXX,这样脱壳以后CALL的地址就不正确了!

加载以后,运行的话会发现产生了N多的异常,这里借用resty的方法,并加上自己的心得,给出一个简单的到OEP的方法:

1、  除INT3断点外,忽略所有异常。SHIFT+F9,运行:
bbs.pediy.com_名称-  1.JPG  查看次数- 106  文件大小-  48.3 KB_attachment.JPG


2、  不忽略整数除0异常,SHIFT+F9运行:
bbs.pediy.com_名称-  2.JPG  查看次数- 105  文件大小-  69.6 KB_attachment.JPG


3、  CTRL+F查找跳到OEP的命令 JMP EAX, 在其上F2下断点,SHIFT+F9运行:

bbs.pediy.com_名称-  3.JPG  查看次数- 105  文件大小-  62.2 KB_attachment.JPG

这里就是跳向光明之巅!取消断点后,F8到OEP处。
然后就是体力劳动了,呵呵,正好这两天初学OllyScript,也就想用脚本来恢复CALL XXX!

我们首先要知道的是CALL XXX处 (原来是CALL [XXX])是如何还原:
F4到任意一个CALL XXX,然后在代码段下内存访问断点,这样就能跟踪到壳的处理函数处:
bbs.pediy.com__attachment.JPG


这在里,我们就知道了,原来壳是用一张表来处理CALL XXX的形式的。记下ESI的表头位址,不同的机器这个地址不一样,这张表以0000结束!在我这里这个地址就是

0x3A3474 这个表的大小是0X458,算一下壳一共处理了多少个函数?
0x458/4/2 =0x8B=139个!晕啊,想把人累死啊!!!!

bbs.pediy.com_名称-  5.JPG  查看次数- 107  文件大小-  106.2 KB_attachment.JPG

没办法,只好学学OllyScript了,用脚本来恢复CALL,下面是自己写的恢复脚本,
呵呵,大侠们别笑,有好多命令不会用…… 采用原壳的解密算法,直接读取密表进行解码后恢复,下面是脚本的原型,虽然很丑,不过确实起到了减轻劳力的作用,哈哈

var passtableaddr
var vaddr
var nCount
var caddr
var encode

mov nCount, 0

lbFind:

find eip, #90E8#
cmp $RESULT, 0
je lbEnd

inc nCount
mov eip, $RESULT
add eip, 6
mov caddr, eip
mov passtableaddr, 3a3474

lbstart:
cmp passtableaddr, 3a38c4
jg lbFind
mov vaddr, [passtableaddr]
cmp vaddr, caddr
jne lbsearch
mov encode, [passtableaddr+4], 4
sub encode, vaddr
not encode
rol encode,10
mov [vaddr-6], #FF15#
mov [vaddr-4], encode

lbsearch:
add passtableaddr, 8
jmp lbstart


jmp lbFind

lbEnd:
   mov eip, 4010cc
   eval "共替换{nCount}处CALL"
   msg $RESULT
ret

bbs.pediy.com_名称-  6.JPG  查看次数- 106  文件大小-  58.8 KB_attachment.JPG

然后恢复下OEP为如图的情况,直接DUMP即可,无需修复IAT,即可运行,PEID查看已经成功脱壳:

bbs.pediy.com_名称-  7.JPG  查看次数- 105  文件大小-  26.0 KB_attachment.JPG

总结:以前以为到了OEP之后修复IAT成功了壳基本就脱完了,遇到这个壳让我觉得自己太浅薄了!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2010-3-2 10:06
图片盗链了,最好本地存储下.
harryluya159 发表于 2010-3-2 11:19
harryluya159 发表于 2010-3-2 11:20
 楼主| wuhanqi 发表于 2010-3-2 18:00
回复 2# Hmily


    图片已编辑
czjh2008 发表于 2010-3-2 18:14
不错,正在学习……
蓝雪儿 发表于 2010-3-2 18:55
学习脚本
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 01:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表