- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三十八章-手脱Yodas Protector v1
.3 (Yodas Crypter)
上一章节给大家介绍了IAT重定向以及修
复方法。本章我们稍微增加一点难度。
我们一起来脱Yoda Crypter v1.3,首先大
家配置好OD的反反调试插件,加载它。
断在了入口点处。
我们可以看到这里有个PUSHAD指令,嘿嘿,
我们可以使用ESP定律来定位OEP,我们单
步到PUSHAD指令处,按F7键单步执行PUSHA
D指令。
然后在ESP寄存器的值上面单击鼠标右键
选择-Follow in Dump,这样就能在数据窗
口中定位到刚刚保存的寄存器环境了,我
们选中前4个字节,单击鼠标右键选择-Bre
akpoint-Hardware,on access-Dword,对
其设置硬件访问断点。
运行起来。
断在了这里,我们可以看到这里将给SEH链
添加一个新的节点,接着通过JMP指令跳转
到下面引发一个异常,我们跟到JMP指令处
。
这里将跳往下面,将产生异常。我们来看
看异常处理程序在哪里。
选择主菜单项中的View-SEH chain。
我们可以看到刚刚安装的异常处理程序入
口地址为46590B,不出意外的话到达该异
常处理程序,随后就会到达OEP,我们给第
一个区段设置内存访问断点,触发异常后,
随即我们就会到达OEP处。
直接运行起来。
断在了OEP处,这里OEP为4271B0,大家应该
很熟悉了吧,我们加壳的目标程序都是同
一个CrackMe,嘿嘿。
如果要深究的话,大家会发现异常处理函
数中Context结构的EIP寄存器的值由4659
82修改为了4271B0,即OEP,关于CONTEXT结
构体的详细介绍我们后面章节再说。
好,现在我们到了OEP处,可以dump了。
这里我们不勾选Rebuild Import选项。
这里我们将其重命名为yodadump.exe,我
们会发现程序无法正常运行。我们需要修
复IAT。
下面我们来分析一下IAT,随便找一个API
函数的调用处,这里我们还是跟之前一样
拿CALL GetVersion开刀,嘿嘿。
我们定位到4271D6处CALL DWORD PTR DS:
[460ADC]指令,460ADC是IAT中的一项,我
们在数据窗口中定位到这个地址。
这部分IAT项看起来像是正常的,我们打开
区段列表窗口,看看这部分IAT项属于哪个
系统DLL,这里我们可以看到这部分IAT项
命中在Kernel32.dll的代码段,即这部分I
AT项是正确的。
再随便选一项单击鼠标右键选择-Find re
ferences(查看一下参考引用),这里我选
择460B34这一项。
继续往下:
这里我们可以看到粉红色标注出来的区域
,我们在区段列表窗口中看看这部分属于
哪个区段。
我们可以看到不属于系统DLL,该区段应该
是由壳创建的,我们重启OD,来验证一下。
我们可以看到此时起始地址为150000的区
段,长度为3000字节,但是壳执行以后,该
区段变成了29000字节,即可壳将该区段增
大了,并且增大的部分供自己使用。
该区段是用于重定向IAT的部分元素的,我
们具体来分析一下。
随便找一个举例,这里我们将拿460BAC这
一项来说,我们来看看其参考引用,选中该
项,单击鼠标右键选择-Find references
。
这里我们可以看到有两处参考引用,我们
直接在第一条记录上面双击,定位到了这
里。
定位到这个CALL处,我们在其上面单击鼠
标右键选择-Follow,看看被重定向到了哪
里。
我们可以看到重定向到这里,并没有过多
的弯弯绕就直接JMP去调用SysStringLen
这个API函数了,这样我们就知道其真正要
调用的API函数了。
这个重定向比较简单,我们打开IMP REC,
看看能不能用IMP REC 自带的Trace功能进
行修复,不过修复不成功,我们再来手动分
析。
打开IMP REC。
定位到unpackme_yoda’s crypter1.3所
在进程,当前其断在了OEP处,填写上OEP,I
AT起始地址的RVA,IAT长度。
OEP 4271B0 - 映像基址400000 271B
0 (RVA)。
我们现在来定位IAT的起始位置,往上拉。
这一部分是重定向到起始地址为150000的
区段的,我们继续往上。
这里我们可以看到460810这一项为800000
08,明显不是IAT项,继续往上的一部分是
以6XXXX的形式,我
您可能关注的文档
- 糖尿病教育-01-糖尿病基础知识.pptx
- 糖尿病教育-02-从关键指标看糖尿病的诊断与治疗.pptx
- 糖尿病教育-05-糖尿病降糖药物的选择.ppt
- 糖尿病教育-08-HbA1c测试介绍.pptx
- 糖尿病教育-09-糖尿病与并发症.pptx
- 糖尿病教育-11-关注下肢血管病变和糖尿病足.pptx
- 糖尿病教育-12-β细胞功能知多少.pptx
- 糖尿病教育-16-体重控制.pptx
- 糖尿病教育-17-肥胖糖尿病患者的治疗与管理.pptx
- 人工神经元网络模型.pptx
- 使用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
- 使用OllyDbg从零开始Cracking-48第四十八章-PeSpin V1.3.pdf
原创力文档


文档评论(0)