- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章-基本概念
本章我们将开始破解。我们先从基本的概
念开始一步步的来介绍破解所需要的步骤
。
本次实验依然是我们熟悉的Cruehead`a的
CrackMe,但是不要把自己局限于破解这个
简单的CrackMe的不同方式-在此过程中,
我们将介绍适用于更加复杂的软件的一些
标准方法。
让我们用调试器开始破解之旅吧。
通过这个CrackMe我们可以掌握一些基本
的概念。
入口点:程序刚刚被加载第一条指令的地
址。为了不和OEP (原始入口点)相混淆,我
们稍后再来介绍OEP的概念。当用OD加载
应用程序后,调试器就会停在入口点处,分
析代码并且等待用户的进一步提示。
对于Cruehead`a的CrackMe这个程序来说,
入口点为401000。通常情况下,状态栏会
显示调试器暂停的原因。现在就提示我们
,当前是入口点:
大部分(99%)的程序启动的时候都会停在
入口点处。还有一些程序通过一些修改方
式让其在启动的时候不停在入口点处。这
些方法我们将在后面讨论。这些方法就是
我们常说的反调试。
接下来,让我们来了解一下DLL (动态链接
库)的概念以及DLL导出函数的功能。
注意一下突出显示的部分,举个例子,比如
我们要调用401020或者要跳转到421367,
这里会是外部函数的名称替代了这个绝对
地址。
CALL LoadIconA
在最右边的列中显示了一些额外的信息,
调用的是LoadIconA。
Windows操作系统支持的所谓的动态链接
库 (扩展名为DLL文件),它们与正常的可执
行文件EXE具有相同的格式。动态链接库
可导出函数供其他可执行文件 (EXE和DLL)
调用。不是在多个可执行文件中有相同的
静态副本,而是把功能放置在DLL中。如果
一个功能的代码量很大,那么这样就可以
缩减可执行文件的大小,更重要的是可以
节省内存。Windows的基本功能:文件,内
存,进程,线程,图形,声音,网络等都是在
标准的动态链接库中实现的。LoadIconA
是在User32.dll中实现的一个加载位图的
应用程序接口。应用程序接口也称之为AP
I。
让我们来看看另一个API MessageBoxA的
例子。
在命令栏中输入: ? MessageBoxA
有个简单的提示,该函数的地址是77D504E
A。我们单击鼠标右键选择-Goto-Express
ion输入这个地址。
我机器上面提示的地址可能和你机器上面
的地址不一样。
如果你是windows 9x的话,就不能这样做
了,我们后面会讲到。
可以看到该函数属于USER32.DLL,通常在
调试器中显示的函数名称前面会有DLL的
名称 (例如Call USER32.MessageBoxA)。
从当前地址开始到函数返回实现了Messag
eBoxA的功能。MessageBoxA便于我们的识
别,但并不是机器码,给破解者提供了一定
的帮助。
想要返回到前一条指令处的话,只需要按
一下减号键。转到MessageBoxA的函数实
现处,也可以直接单击鼠标右键选择Goto-
Expression输入MessageBoxA。
这里我们又进入了USER32.DLL的MessageB
oxA函数中。该函数名称是区分大小写的(
这里名称是MessageBoxA而不是messagebo
xa)。
按减号-回到入口点。
单击鼠标右键:选择Search for-Name(lab
el)in current module Ctrl+N菜单项。
获取该CrackMe的API的名称列表。
查找我们关注的API函数的话,不需要一个
个去看,只需要输入API函数的名称即可。
这里我们按M键:
光标定位到第一个函数名称以M开始的API
上。
标题栏显示你正在搜索的字母。
在函数名称上单击鼠标右键弹出的菜单项
有:
选择Follow import in Disassembler选
项,我们就可以转到API函数的实现处。这
也是另一种转到API函数实现代码的方法
。
在这里新手普遍会犯一个错误,现在单击
鼠标右键选择-Search for-Name(label)i
n current module。这个时候我们得到的
函数名称是USER32.DLL库中的函数名称,
并不是我们的CrackMe主程序的导入表中
的函数名。菜单项中明确指出是搜索当前
模块,我们现在这种情况,当前模块是USER
32,因此MessageBoxA是位于该模块当中的
。
为了避免这样的错误,要记得
您可能关注的文档
- 糖尿病教育-01-糖尿病基础知识.pptx
- 糖尿病教育-02-从关键指标看糖尿病的诊断与治疗.pptx
- 糖尿病教育-05-糖尿病降糖药物的选择.ppt
- 糖尿病教育-08-HbA1c测试介绍.pptx
- 糖尿病教育-09-糖尿病与并发症.pptx
- 糖尿病教育-11-关注下肢血管病变和糖尿病足.pptx
- 糖尿病教育-12-β细胞功能知多少.pptx
- 糖尿病教育-16-体重控制.pptx
- 糖尿病教育-17-肥胖糖尿病患者的治疗与管理.pptx
- 人工神经元网络模型.pptx
- 使用OllyDbg从零开始Cracking-10第十章-断点.pdf
- 使用OllyDbg从零开始Cracking-11第十一章_硬件断点与条件断点.pdf
- 使用OllyDbg从零开始Cracking-12第十二章-消息断点.pdf
- 使用OllyDbg从零开始Cracking-13第十三章-硬编码序列号寻踪-Part1.pdf
- 使用OllyDbg从零开始Cracking-14第十四章-硬编码序列号寻踪-Part2.pdf
- 使用OllyDbg从零开始Cracking-15第十五章-硬编码序列号寻踪-Part3.pdf
- 使用OllyDbg从零开始Cracking-16第十六章-序列号生成算法分析-Part1.pdf
- 使用OllyDbg从零开始Cracking-17第十七章-序列号生成算法分析-Part2.pdf
- 使用OllyDbg从零开始Cracking-18第十八章-序列号生成算法分析-Part3.pdf
- 使用OllyDbg从零开始Cracking-19第十九章-OllyDbg反调试之IsDebuggerPresent.pdf
最近下载
- 2024-2025学年皖中名校联盟合肥八中高一(上)期末检测数学试卷(含答案) .pdf VIP
- 2025年安徽邮电职业技术学院单招职业适应性测试题库附答案.docx VIP
- 驾驶证学法减分(学法免分)题库及答案(160题完整版).pdf VIP
- 浙江大学:2024“源网荷储一体化项目”的背景、现状与展望报告.pdf
- 2024年渠道运营中级2.0考试题库.docx
- 2025年安徽邮电职业技术学院单招职业适应性测试模拟试题及答案解析.docx VIP
- Reading explorerF级精品教学课件Book 1_Unit 1.pptx VIP
- LTCC滤波器设计研究.docx VIP
- 2025年安徽职业技术学院单招职业适应性测试模拟试题及答案解析.docx VIP
- 2025年安徽林业职业技术学院单招职业适应性测试题库及完整答案.docx VIP
原创力文档


文档评论(0)