- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三十六章-IAT重定向
本章我们继续增加壳的难度,将看两款壳,
分别是bitarts 5.0,telock 0.98,telock
0.98会涉及到本章我们要讨论的IAT 重定
向的知识点。
我们先拿简单的bitarts 5.0开刀,用OD加
载它。
第一行不是用PUSHAD保存寄存器环境,我
们按F7键往下跟。
这里我们跟到PUSHAD指令处,按F7执行该
指令,接着在寄存器窗口中定位到ESP寄存
器的值,在其上面单击鼠标右键选择-Foll
ow in Dump。
给前4个字节设置硬件访问断点。
按F9键运行起来 (遇到异常忽略掉),断了
下来。
往下单步跟几行就能到达OEP处。
大家也可以使用OD 自带的功能选项定位OE
P,前面OEP章节中介绍的方法大家可以一
一尝试。
OEP命中在第一个区段。
第一个区段为代码段,OD不会弹出入口点
不在代码段的提示框。
这里我们可以看到调用的第一个API函数
是GetVersion,我们可以在一开始给GetVe
rsion设置一个断点,运行起来,接着会断
下来,看看返回地址是不是位于第一个区
段,如果是就定位到返回地址处,上面就是
OEP了。
定位OEP很容易,这里不再赘述了,下面我
们来看下IAT。
460ADC是IAT中的一项,其中保存的是GetV
ersion的地址,我们在数据窗口中定位到I
AT。
这个IAT有点大,嘿嘿。
这个IAT项存放的是GetVersion的地址,属
于Kernel32.dll,我们也可以在区段列表
窗口中看看7Cxxxxxx的地址属于哪个DLL
。
绿色标注的项大部分都是属于Kernel32.d
ll的,中间夹杂着几项NTDLL.dll的,这几
项是用Kernel32.dll中的相应函数替换了
,各个DLL的IAT项被零隔开了。
下面我们来看看77xxxxx这类是属于哪个D
LL的,我们除了在区段列表中看,也可以在
770F48C0这一项上面单击鼠标右键选择-F
ind references。
这里可以看到参考引用列表。
这里可以看到基本上都是在第一个区段中
调用的OleAut32.dll中的VariantClear这
个API函数。
区段列表窗口中我们也可以看到770xxxxx
这类地址是属于OleAut32.dll的代码段的
。
这里我们就不一一看其他DLL的IAT项了,
直接定位到IAT的尾部。
这里用湛蓝色,粉红色,灰色分别标注了
不同DLL的IAT项,分割的零用绿色标注出
来,在最后一个IAT项上面单击鼠标右键选
择-Find references。
我们可以看到最后一个IAT项是属于oledl
g.dll中OleUiBushA这个API函数,我们在
区段列表窗口中来验证一下。
下面的几项都不是IAT项了。
我们在6C50000B上面单击鼠标右键选择-F
ind references。
可以看到参考引用列表是空的,所以说IAT
的最后一项的起始地址为460F28。
我们再来看看哪里是IAT的起始位置。
这里可以看到460810里面的值
,明显不会属于任何一个Dll,我们可以在
查看一下其参考引用列表来验证一下,在
其上面单击鼠标右键选择-Find referenc
es。
可以看到参考引用列表也是空的,说明IAT
的第一项的起始地址为406818。
现在我们知道了IAT的起始地址和结束位
置,我们来计算一下IAT的大小:
IAT大小 460F28 - 460818 710。
IMP REC需要的三条数据:
OEP 271B0 (RVA)
IAT起始地址 60818 (RVA)
IAT 大小 710
下来我们用OllyDump插件来dump。
这里不够选Rebuild Import,仅仅dump。
打开IMP REC,定位到bitarts所在的进程,
当前该进程处于OEP处。
将OEP,RVA,Size的值都设置上。
单击Get Imports。
可以看到该壳在IAT中添加垃圾数据,修复
的IAT项都是有效的,单击Fix Dump,选择
刚刚dump出来的文件修复之。
修复过的程序被命名为unpacked_.exe,运
行一下看看效果。
完美运行,没有AntiDump,比之前介绍的壳
稍微复杂一点点。
下面我们来看看telock 0.98这款壳,该壳
涉及到了我们将要介绍的IAT 重定向的知
识点。
这里我们依然用ESP定律来定位OEP,单步
跟几步就能看到PUSHAD指
您可能关注的文档
- 糖尿病教育-01-糖尿病基础知识.pptx
- 糖尿病教育-02-从关键指标看糖尿病的诊断与治疗.pptx
- 糖尿病教育-05-糖尿病降糖药物的选择.ppt
- 糖尿病教育-08-HbA1c测试介绍.pptx
- 糖尿病教育-09-糖尿病与并发症.pptx
- 糖尿病教育-11-关注下肢血管病变和糖尿病足.pptx
- 糖尿病教育-12-β细胞功能知多少.pptx
- 糖尿病教育-16-体重控制.pptx
- 糖尿病教育-17-肥胖糖尿病患者的治疗与管理.pptx
- 人工神经元网络模型.pptx
- 使用OllyDbg从零开始Cracking-38第三十八章-手脱Yoda's Protector v1.pdf
- 使用OllyDbg从零开始Cracking-39第三十九章-神马是stolen bytes.pdf
- 使用OllyDbg从零开始Cracking-40第四十章-OllyDbg脚本的编写.pdf
- 使用OllyDbg从零开始Cracking-41第四十一章-神马是AntiDump.pdf
- 使用OllyDbg从零开始Cracking-42第四十二章-ACProtect V1.pdf
- 使用OllyDbg从零开始Cracking-43第四十三章-ACProtect V1.pdf
- 使用OllyDbg从零开始Cracking-44第四十四章-ACProtect V1.pdf
- 使用OllyDbg从零开始Cracking-45第四十五章-ReCrypt v0.pdf
- 使用OllyDbg从零开始Cracking-46第四十六章-Patrick的CrackMe-Part1.pdf
- 使用OllyDbg从零开始Cracking-47第四十七章-Patrick的CrackMe-Part2.pdf
原创力文档


文档评论(0)