AsProtect 1.2 简单脱壳+脚本编写
本帖最后由 Blackk 于 2014-11-17 12:57 编辑尽管它是老壳,尽管它已被通杀,但某些壳注定一出身就不平凡!
这么多年过去了,依然通过它还可以学习到很多!
~
我是小菜,只能玩di版本,记录一下自己的学习记录。图片更换为高清大图,点击“实际大小”即可
一、查壳
使用PEID的OEp查找插件可以直接找到OEp的位置
http://pic.yupoo.com/178273541/EdiuLEZv/lHOEu.png
二、脱壳
下面开始手动找到OEp,OD载入,停在入口点。忽略除了“非法访问内存”的所有异常
http://pic.yupoo.com/178273541/EdiuN2cW/eYsSf.png
21次SHIFT+F9之后程序运行。
重载程序,在20次SHIFT+F9之后,停到此处,我们对代码段下内存访问断点
http://pic.yupoo.com/178273541/EdiuNX74/d4mIr.png
SHIFT+F9之后就停在OEp了
可以看到程序的IAT都已被移到壳的区段了
http://pic.yupoo.com/178273541/EdiuPkTE/xxDb0.png
我们来看一下怎么还原IAT
重载程序,忽略所有异常,对00460ADC下内存写入断点
http://pic.yupoo.com/178273541/EdiuQmVp/h7Wux.png
第二次断在这里
EDX指向要处理的IAT,EAX是该IAT的值(处理过),ESI可以看到IAT的名称
http://pic.yupoo.com/178273541/EdiuQTJd/cXeUv.png
在上面的第一个CALL下F2断点
http://pic.yupoo.com/178273541/EdiuRMHX/DFKQl.png
F9运行,此时EAX的值就是真实的函数地址,这里是个循环,直到IAT处理完毕
http://pic.yupoo.com/178273541/EdiuSdoR/tzYKZ.png
如果你时间够多我不介意你一个一个手动修复,我很懒的,还是写一个脚本吧~
//定义要用到的变量,并且清除断点
var oep
var getapi
var apiaddress
var fixapi
bphwc
//获取GetSystemTime函数的地址(因为壳会用到这个函数,方便我们找到壳的区段)
rtr是执行到返回,那么就到了壳区段,然后搜索二进制(这个二进制就是CALL上面的那几句代码,你也可以自己找,我样本不多,不通用也说不定)
找到就继续处理,没找到就停止脚本
gpa "GetSystemTime","kernel32.dll"
bp $RESULT
esto
bc $RESULT
rtr
find eip,#8DB5FFFEFFFF568B450C50#
cmp $RESULT,0
je error
//设置OEP、IAT获取、IAT处理的地址(就是我们找到的CALL和写入的地址)
运行一次
mov oep,4271b0
mov getapi,$RESULT+10
mov fixapi,$RESULT+19
bphws getapi
bphws fixapi
bphws oep
esto
//此时停在CALL处,将EAX的值(函数地址)保存
运行一次
将函数地址修复
是否停在OEp?停在OEp就停止脚本
fixbegin:
mov apiaddress,eax
esto
mov ,apiaddress
esto
cmp eip,oep
je finsh
jmp fixbegin
//错误和脚本的停止处理
finsh:
MSG "IAT修复完成,请检查"
ret
error:
MSG "未搜索到获取API地址,请使用手动输入。"
ret
好了,全部组合起来,OD开始跑脚本,可以在数据窗口查看IAT的修复情况
http://pic.yupoo.com/178273541/EdiuU8Jv/JqsXd.png
IAT修复完成后,我们检查一下,发现还有一个函数没有修复
http://pic.yupoo.com/178273541/EdiuUOTK/hAr0J.png
来到指向的函数地址,我们手动修复一下
http://pic.yupoo.com/178273541/EdiuVqUf/2a8bP.png
三、收尾
在OEp处Dump程序,然后修复IAT,没有错误^_^
附件下载,脚本在第一个附件中,测试了一下,这个脚本也支持1.23RC =-=
本帖最后由 Blackk 于 2014-11-17 12:53 编辑
沙发自己坐呃~ 你电脑的字体好卡哇伊 叫什么名字? 修复IAT才是难度。{:1_906:} 不错的教程,谢谢分享 前排膜拜大神 顺便出售瓜子可乐爆米花 学习了虽然没怎么看懂,但是还是感谢分享 感谢楼主分享辛苦了 感谢楼主分享!! 学习大神介绍