使用ollydbg从零开始cracking 第十一章-硬件断点与条件断点

使用ollydbg从零开始cracking 第十一章-硬件断点与条件断点

ID:15482326

大小:478.55 KB

页数:15页

时间:2018-08-03

使用ollydbg从零开始cracking 第十一章-硬件断点与条件断点_第1页
使用ollydbg从零开始cracking 第十一章-硬件断点与条件断点_第2页
使用ollydbg从零开始cracking 第十一章-硬件断点与条件断点_第3页
使用ollydbg从零开始cracking 第十一章-硬件断点与条件断点_第4页
使用ollydbg从零开始cracking 第十一章-硬件断点与条件断点_第5页
资源描述:

《使用ollydbg从零开始cracking 第十一章-硬件断点与条件断点》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十一章:硬件断点与条件断点下面我们将把剩下的类型的断点介绍完,本章先介绍硬件断点和条件断点。硬件断点硬件断点(简称:HBP)是处理器的特性之一,它的工作原理我不是很了解,但是我们会用就行了,我们可以设置硬件断点使程序中断下来。在OD中我们最多可以设置4个硬件断点,如果想设置第5个的话,你需要删除已经设置了的4个中的其中一个。跟之前一样,我们还是拿CrueHead'a的CrackMe来做实验。硬件断点分为:硬件执行断点(ONEXECUTION),硬件写入断点(ONWRITE),硬件访问断点(ONACCESS)3种。硬件执行断点与普通

2、的CC断点作用一样,但硬件执行断点并不会将指令首字节修改为CC,所以更难检测。但是有些程序会使用一些技巧来清除硬件断点,应对方法我们会在后面的章节介绍。如果你想在401013处设置硬件执行断点的话,请在401013这一行单击鼠标右键选择-Breakpoint-Hardware,onexecution。也可以在命令栏中输入:这样可以设置硬件执行断点。OD中有个特殊的窗口,通过它我们可以查看和管理硬件断点。我们选择菜单栏中的Debug-Hardwarebreakpoints就可以打开这个窗口。在硬件断点窗口中,如果我们单击Follow按

3、钮,反汇编窗口中该硬件断点所对应的那一行指令就会灰色高亮显示。如果我们单击Delete按钮,那么相应的硬件断点就会被清除。现在按F9键运行程序。中断在401013处。正如你所看到的,起到的效果跟普通的CC断点有点像,如果你像对CC断点做的测试-MOVEAX,DWORDPTRDS:[401013]一样的话,你会发现机器码并没有改变。在401000这一行单击鼠标右键选择-Neworiginhere将EIP修改为401000,接着按F7键单步。可以看到EAX的值为0004A6E8,内存的形式为E8A60400,机器码并没有发生变化。如果我

4、们重启OD,可以看到硬件断点依然存在。单击Delete按钮将其删除,然后给MessageBoxAAPI函数设置一个硬件执行断点。我们来看看硬件断点窗口。我们知道,如果按F9键将程序运行起来,然后输入用户名和序列号,跟之前的普通CC断点一样程序将断在MessageBoxA的第一条指令处,这里就不再赘述了。单个硬件写入断点或者硬件访问断点可以设置1,2或者4个字节的长度,不论我们选择的数据范围有多大,只有前4个字节会起作用。现在我们清除所有设置的硬件断点,然后再4020CA处设置一个硬件访问断点。我们在数据窗口中转到4020CA这个地址

5、处。注意前4个字节。单击鼠标右键。可以看到,对于我们标记的区域,硬件访问断点可供我们选择的长度只有1字节和2字节,由于4字节的只针对4的倍数的地址,当前地址并不是4的倍数,所以没有该菜单项。接下来我们选择后面的1个字节,单击鼠标右键选择-Hardware,onaccess,可以看到只有1个字节的选项。我们接着选中后面一个字节,这个时候出现了4个字节(Dword)的选项。如果我们想在读取或者写入4020CA地址处的内容的时候断下来的话,我们给该地址设置1个字节的硬件访问断点即可。返回到4020CA处,单击鼠标右键选择-Hardware

6、,onaccess-Byte。我们可以看到硬件断点窗口中显示的硬件访问断点长度为1个字节。F9键运行。OD提示命中了1号硬件断点。我们可以看到程序断在了触发硬件访问断点或者硬件写入断点的下一条指令处,所以请记住硬件访问/写入断点是断在触发硬件断点的下一条指令处。正如你所看到的,跟内存断点不一样,内存断点会断在触发断点指令处,也就是401007处。而硬件访问/断点断在了触发硬件断点的下一条指令40100C处。条件断点条件断点实际上就是普通的CC断点,只不过该断点的触发需要满足设置的条件,如果满足设置的条件,那么程序就会中断下来,如果不

7、满足条件的话,就和没有设置CC断点差不多。我们来看一个例子:重启OD并清除我们之前设置的所有硬件断点,我们在40100E处设置一个条件断点,在40100E处单击鼠标右键选择-Breakpoint-Conditional。就会弹出设置条件的窗口。举个例子,如果你想当前EAX等于400000的时候,程序中断下来,那么条件应该写成:“EAX==400000”。OD的帮助文档中介绍了条件断点的设置可以使用的符号以及条件怎么书写。我们可以看到设置了条件断点的语句地址显示的是粉红色。按F9键运行。我们可以看到,OD状态栏显示断下来了。我们可以看

8、到EAX等于400000,满足条件,所以断了下来。再次重启OD,清除设置的条件断点,然后设置一个新的条件断点,条件为:EAX==500000。F9键运行。可以看到CrackMe运行起来了,并没有中断下来,因为EAX等于400000,条

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。