- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二十三章-OllyDbg反调试之ProcessHe
ap,NTGlobalFlag,OutputDebugStringA
本章是反调试的最后一章,本章将介绍Pro
cessHeap和NTGlobalFlag标志位以及如何
通过这两个标志位进行反调试,介绍完这
部分内容我们就掌握了常见的反调试技巧
。反调试的手法还有很多,我们介绍的只
是最基本,最常见的。像一些保护壳,比如
说Execryptor的反调试是比较厉害的,我
们后面再介绍。Execryptor壳除了我们介
绍的这几种反调试以外,还有别的反调试
手法,它的每个新版本都会增加一些新的
反调试选项,这都是后话了,我们先来把常
规的反调试手法介绍完。
HideOD插件中提供绕过这个两个标志检测
的选项,我们来看看。
HideOD插件见附件,上一章也提供了,红圈
标注的就是绕过ProcessHeap和NTGlobalF
lag两个标志位的选线,我们首先还是来手
工绕过这个两个标志位的检测吧。
这两个标志置位的话表示当前进程正在被
调试,很容易定位到这两个标志位。不知
道大家还记得不得IsDebuggerPresent对
应的那个调试标志位是如何定位的,如果
你不记得的话,回头去看看第19章,如果你
弄明白如何定位那个标志位的话,那么这
两个标志位也就好定位了,因为这两个标
志位就在那个标志位的附近。
由于勾选上HideNtDebugBit选项,就会绕
过ProcessHeap和NTGlobalFlag的检测,这
里我们不勾选。
这里我们的实验对象是Cruehead’a的Cra
ckMe,我们首先来定位这两个标志位。
我们用OD加载该CrackMe,并确保HideOD插
件的配置如上图所示。
好了,我们现在来看看如何手工定位和修
改ProcessHeap和NTGlobalFlag这两个标
志位。
我们先定位到第19章介绍过的IsDebugger
Present的那个标志,最简单的做法就是EI
P在入口点处时找到EBX寄存器的值,然后
单击鼠标右键选择-Follow in Dump。完
整的定位流程你可以回头看第19章。
我们在数据窗口中定位到该标志位,我机
器上的这个地址可能与你的不同,而且,该
程序每次重新启动该地址也可能不同。
我们知道IsDebuggerPresent是获取该标
志位来检测是否被调试的,NTGlobalFlag
就在它的隔壁,嘿嘿,我们只需要将EBX的
值加上0x68就可以定位NTGlobalFlag标志
位,当前,EBX的值为7FFDA000,加上0x68等
于7FFDA068。
这就是NTGlobalFlag标志位,当前不为零
表示正在被调试,我们来手工将其修改为
零。
这里把该标志修改为零了。
我们可以看到NtGlobalFlag标志清零了。
现在我们来定位另一个标志ProcessHeap,
也很容易定位。
同样是EIP在入口点处时定位到EBX的值,
然后将EBX的值加上0x18,我机器上Proces
sHeap的值为0x140000,这是程序刚启动的
时候创建的一块堆内存空间,该内存是用
来保存一些重要的数据的,好了,我们知道
这些就够了。
我们来看看堆中保存了些什么。
我们选中这4个字节,单击鼠标右键选择-F
ollow DWORD in Dump就可以在数据窗口
中定位该堆空间了。
偏移0x10的位置的4个字节就是HeapFlags
标志了,当前为零,表示当前没有被调试,
这是加载了HideOD和HideDebugger插件的
原因,我们不加载这两个插件然后打开该C
rackMe。
现在该DWORD就不为零,表示当前正在被调
试,但是使用了某些插件的话,即使我们不
设置绕过ProcessHeap的选项,该DWORD也
会变为零。
现在我们勾选上HideOD插件的HideNtDebu
gBit的选项。
我们重新启动cruehead’a的CrackMe。
断在入口点处,我们定位到IsDebuggerPre
sent以及NtGlobalFlag标志,可以看到都
是零,我们再来看看ProcessHeap标志。
也是零,说明HideOD插件起作用了。至此,
我们就学会了如何手工定位和修改Proces
sHeap和NTGlobalFlag标志。
接下来我们看看OutputDebugStringA选项
。
和
这里要提到一点就是:
OllyDbg存在一个bug-当被调试程序通过O
utputDebugString输出超长的一串调试字
符串的时候,OllyDbg无法处
您可能关注的文档
- 糖尿病教育-01-糖尿病基础知识.pptx
- 糖尿病教育-02-从关键指标看糖尿病的诊断与治疗.pptx
- 糖尿病教育-05-糖尿病降糖药物的选择.ppt
- 糖尿病教育-08-HbA1c测试介绍.pptx
- 糖尿病教育-09-糖尿病与并发症.pptx
- 糖尿病教育-11-关注下肢血管病变和糖尿病足.pptx
- 糖尿病教育-12-β细胞功能知多少.pptx
- 糖尿病教育-16-体重控制.pptx
- 糖尿病教育-17-肥胖糖尿病患者的治疗与管理.pptx
- 人工神经元网络模型.pptx
- 使用OllyDbg从零开始Cracking-24第二十四章-OllyDbg反调试之综合CrackMe.pdf
- 使用OllyDbg从零开始Cracking-25第二十五章-异常处理.pdf
- 使用OllyDbg从零开始Cracking-26第二十六章-Visual Basic程序的破解-Part1.pdf
- 使用OllyDbg从零开始Cracking-27第二十七章-Visual Basic程序的破解-Part2.pdf
- 使用OllyDbg从零开始Cracking-28第二十八章-Visual Basic程序的破解-Part3.pdf
- 使用OllyDbg从零开始Cracking-30第三十章-P-CODE-Part2.pdf
- 使用OllyDbg从零开始Cracking-31第三十一章-脱壳简介.pdf
- 使用OllyDbg从零开始Cracking-32第三十二章-OEP寻踪.pdf
- 使用OllyDbg从零开始Cracking-33第三十三章-神马是IAT 如何修复.pdf
- 使用OllyDbg从零开始Cracking-34第三十四章-手脱UPX,修复IAT.pdf
最近下载
- 湿式报警阀组更换施工方案及流程.docx VIP
- 投资与资产管理公司关键绩效KPI体系管理细则.docx VIP
- 高性能纤维材料-第1篇-洞察及研究.docx VIP
- 用具体案例分享有效培养学生自主管理能力的经验和方法.docx VIP
- 79博客-目录书签跳转版.pdf VIP
- 食品新产品开发 课件全套 第1--6章 绪论、食品新产品开发流程---食品新产品流通过程管理.pptx
- 2024高考上海语文卷详解及备考建议(古诗文有详译)3.docx VIP
- 【人教版化学】选择性必修3 知识点默写小纸条(空白默写版.docx VIP
- YBT 4243-2011 钢铁企业冷轧板带热处理线和涂镀线工业炉环保节能设计技术规范.docx VIP
- 高中英语语法强调句的用法优秀公开课课件.ppt VIP
原创力文档


文档评论(0)