- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四十六章-Patrick的CrackMe-Part1
本章我们继续加深难度,实验程序名称为P
atrick.exe,该程序的保护较强。大家会
发现之前介绍的一些方法针对于该保护并
不奏效。
所有很多时候我们不得不适当变通,特定
的保护特定解。
这里要提一句,一些商业壳不可能将所有
的保护手段都运用到,因为商业壳的宗旨
是要保证 目标程序为任意软件。但是恰恰
有些保护手段只针对于特定的程序。
好了,这里我们打开OD,还记得之前介绍那
款修改过的Patched 4这款OD吧,就它了,
配置好反反调试插件。
这个CrackMe,作者的要求不仅仅是脱壳,
还必须将DLL剥离,让EXE单独正常运行。
那么就是说Patrick主程序 目录下的AntiD
ebugDll.dll这是一个核心DLL,如果将这
个DLL删除掉的话,主程序将无法正常运行
。
好了,现在我们用Patched4这款OD加载Pat
rick.exe。
我们可以看到还没有到达入口点,程序就
终止了。
好,下面我们来尝试将入口点修改为系统
断点处,系统断点会在到达主程序入口点
之前断下。
打开主菜单中的Debugging options-Even
ts,选中System breakpoint。
这样就可以让程序首次中断在系统断点处
,这里要提一句,有些DLL会在到达入口点
之前被加载,而这些DLL会检测主程序是否
正在被调试,如果正在被调试的话就立即
结束进程。
有一点必须明确,就是系统动态库并不会
对OD进行检测。
下面我们在数据窗口中单击鼠标右键选择
Goto Expression,输入400000定位到PE头
。
接着在数据窗口中单击鼠标右键选择Spec
ial-PE Header,切换到PE结构解析模式。
往下拉。
这里我们可以看到Import Table(缩写:IT
,俗称:导入表)的RVA (相对虚拟地址) (PS:
不要将Import Table与IAT搞混淆了,IAT
是Import Address Table(输入函数地址
表)的缩写,嘿嘿).
这里6F3C + 映像基地址 (400000)就可以
定位到Import Table了。
将数据窗口的显示模式由PE解析模式切换
回十六进制模式。
不知道大家是否还记得导入表的格式,每
个DLL项占5个DWORD。(PS:关于PE结构不
了解的童鞋,可以参看传说中的小黄书,你
懂得!嘿嘿 Windows PE权威指南)
每个DLL项中的第4个DWORD指向了DLL的名
称字符串,那么40712E这个地址就指向了
第一个DLL的名称字符串,我们一起来看一
看。
这里我们可以看到第一个DLL为WINMM.DLL
,我们假设在到达入口点之前如果该DLL被
执行了的话,OD就会终止。(PS:这是个系
统DLL,并不会进行反调试的处理,这里只
是举个例子)
我们来一探究竟,首先OD断在系统断点处
。
断在了这里,此时该CrackMe还没有到达入
口点处,因为当某个DLL加载并执行以后就
会终止进程,而当前进程并没有终止。也
就是说此时存在反调试的DLL还没有得到
执行,我们单击工具栏中的M按钮打开区段
列表窗口,对该DLL的代码段设置内存访问
断点。
这里断点就设置好了,我们直接运行起来
。
我们看到断了下来,这里是由于读取76B0D
8B8地址处的内容导致的中断。
我们继续运行,直到触发内存执行断点为
止。
断在了这里,这里就要开始执行该DLL的代
码了。
跟踪反调试DLL的流程就是这样的,接下来
,我们重启OD,再次重复一遍上面的步骤,
这次我们直接对AntiDebugdll.dll的代码
段设置内存访问断点。
我们运行起来,会发现首次就触发了执行
断点。
在运行之前我们首先删除掉之前设置的内
存访问断点:
这里提示一下该程序既不是检测OD的进程
名,也是不是检测OD窗口名,也不是HideOD
插件中的涉及的那些检测方法,它是检测
该进程是由谁创建的,通过调用Process32
Next等API函数来遍历进程,判断当前进程
的父进程是否为桌面进程来达到反调试的
目的。
也就说该CrackMe会判断当前进程是否由e
xplorer.exe启动,如果是的话,那么就说
明是用户双击运行的。如果不是的话,那
么就说明正在被调试,直接终止进程。
这里我们给Process32Next这个API函数设
置一个断点。
接着运行起来。
断了下来,这里可以看到第二个参数pProc
essentry的值为12EEC8。
这里
您可能关注的文档
- 糖尿病教育-01-糖尿病基础知识.pptx
- 糖尿病教育-02-从关键指标看糖尿病的诊断与治疗.pptx
- 糖尿病教育-05-糖尿病降糖药物的选择.ppt
- 糖尿病教育-08-HbA1c测试介绍.pptx
- 糖尿病教育-09-糖尿病与并发症.pptx
- 糖尿病教育-11-关注下肢血管病变和糖尿病足.pptx
- 糖尿病教育-12-β细胞功能知多少.pptx
- 糖尿病教育-16-体重控制.pptx
- 糖尿病教育-17-肥胖糖尿病患者的治疗与管理.pptx
- 人工神经元网络模型.pptx
- 使用OllyDbg从零开始Cracking-47第四十七章-Patrick的CrackMe-Part2.pdf
- 使用OllyDbg从零开始Cracking-48第四十八章-PeSpin V1.3.pdf
- 使用OllyDbg从零开始Cracking-49第四十九章-PeSpin V1.3.pdf
- 使用OllyDbg从零开始Cracking-50第五十章-再谈ReCrypt v.0.pdf
- 使用OllyDbg从零开始Cracking-54第五十四章-EXECryptor v2.2.50.pdf
- 使用OllyDbg从零开始Cracking-55第五十五章-ExeCryptor v2.2.50.pdf
- 使用OllyDbg从零开始Cracking-56第五十六章-EXECryptor v2.2.50.pdf
- 使用OllyDbg从零开始Cracking-57第五十七章-ExeCryptor v2.2.50.pdf
- 使用OllyDbg从零开始Cracking-58第五十八章-ExeCryptor v2.2.pdf
- 使用OllyDbg从零开始Cracking-456第四十五章补充章节-ReCrypt v0.pdf
原创力文档


文档评论(0)