- 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反调试之检测OD进
程名,窗口类名,窗口标题名
本章我们继续讨论反调试,将我修改过的
一个CrackMe作为本章的实验对象。
该CrackMe的名字叫做buggers,其中做的
一些修改是为了介绍检测OllyDbg进程名
的其他一些API函数,同时该CrackMe也涵
盖了检测OllyDbg窗口标题名以及窗口类
名等知识点。
我们打开原始的OllyDbg程序,不使用重命
名的,因为本章我们将对上一章的检测OD
的方法进行延伸,因此让OD的文件名是Oll
yDbg.exe,保证该CrackMe可以检测出来OD
。
我们用OD加载该CrackMe,接着将HideDebu
gger1.23版插件的IsDebuggerPersent选
项勾选上。
HideDebugger插件的配置如下:
这里只是为了防止该程序调用IsDebugger
Present对OD进行检测。我们打开原始的O
llyDbg.exe,然后打开任务管理器,确保OD
的进程名为”OLLYDBG.EXE”
好了,我们回到buggers3,看看该程序使用
了哪些API函数。
我的天啦!API列表中居然只是唯一的一个
函数ExitProcess,其他API函数应该都是
通过GetProcAddress加载的,但是GetProc
Address也不在该列表中。
我们试试在命令栏中输入bp GetProcAdd
ress,接着运行起来。
断在了GetProcAddress函数的入口处,程
序调用GetProcAddress加载一些API函数,
如果我们对哪些API函数感兴趣,我们可以
执行到返回,就知道了该函数的地址了,然
后使用bp EAX断这个函数,因为EAX中保存
了GetProcAddress获取到的函数地址。
这个函数我们不感兴趣,我直接按F9键运
行起来。
运行几次后,我们找到了一个可疑的API函
数CreateToolhelp32Snapshot,你可能会
问,你是怎么知道的,因为我知道这种检测
方法,所以我介绍它,让大家知道哪些API
函数还可以用于检测OD。
好了,现在我们选择主菜单项Debug-Execu
te till return来执行到返回。
现在我们到了RET指令处,并且EAX保存了C
reateToolhelp32SnapShot的函数地址,我
们使用BP EAX该函数设置一个断点。
下面是该API断点的位置。
我们继续运行,看看有没有其他的可疑的A
PI函数的被加载。
恩,OpenProcess这个函数也是一个可疑函
数,其可以获取进程的句柄 (我们上一章节
已经讨论过了),我们执行到返回,接着使
用BP EAX给该函数设置断点。
嘿嘿,Process32First又一个可疑的API函
数,我们同样执行到返回,然后BP EAX给该
函数设置断点,接着对下一个可疑的函数P
rocess32Next进行同样的操作。
接下来是TerminateProcess。
我们知道这个函数是用来关闭OllyDbg的
。因为必须检测OD进程才会执行该函数,
所以不必给该函数设置断点,但是为了安
全起见我们还是给该函数设置断点吧,嘿
嘿。
嘿嘿,FindWindowA又一个可疑的函数,依
然按照上面的方法给该函数设置断点。
我们继续F9键运行就断在了CreateToolhe
lp32SnapShot的入口处。
堆栈情况如下:
让我们来看看MSDN中关于这个函数的说明
。
该函数是该当前机器上面运行的所以进程
列表创建一个快照,但是返回给我们的仅
仅是该快照的句柄,并且没有什么用于保
存进程列表的缓冲区之类的参数,我们直
接执行到返回。
EAX中保存了进程快照的句柄。
我机器上返回的进程快照句柄是2C,我们
查看一下该程序的句柄列表。
我们单击工具栏上面H按钮打开句柄列表
窗口。
我们发现句柄列表中并没有2C这个句柄值
,不过还好,我们成功了创建了进程快照并
获取到了进程快照的句柄,我们运行起来,
看看该程序哪里使用了进程列表。
断在了Process32First这个API函数的入
口处,该函数配合Process32Next这个API
函数可以读取进程快照中所有正在运行的
进程的相关信息。
好了,我们来看看MSDN中关于这个函数的
说明。
该函数用于获取第一个参数也就是进程快
照(我这里是2C)中的第一个进程的信息。
第二个参数为PROCESSENTRY32(进程相关
信息)的结构体的指针。
这个函数仅仅是用来获取第一
您可能关注的文档
- 糖尿病教育-01-糖尿病基础知识.pptx
- 糖尿病教育-02-从关键指标看糖尿病的诊断与治疗.pptx
- 糖尿病教育-05-糖尿病降糖药物的选择.ppt
- 糖尿病教育-08-HbA1c测试介绍.pptx
- 糖尿病教育-09-糖尿病与并发症.pptx
- 糖尿病教育-11-关注下肢血管病变和糖尿病足.pptx
- 糖尿病教育-12-β细胞功能知多少.pptx
- 糖尿病教育-16-体重控制.pptx
- 糖尿病教育-17-肥胖糖尿病患者的治疗与管理.pptx
- 人工神经元网络模型.pptx
- 使用OllyDbg从零开始Cracking-22第二十二章-OllyDbg反调试之UnhandledExceptionFilter,ZwQueryInformationProcess.pdf
- 使用OllyDbg从零开始Cracking-23第二十三章-OllyDbg反调试之ProcessHeap,NTGlobalFlag,OutputDebugStringA.pdf
- 使用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
原创力文档


文档评论(0)