如何对抗硬件断点之一

如何对抗硬件断点之一

ID:20437837

大小:53.00 KB

页数:3页

时间:2018-10-11

如何对抗硬件断点之一 _第1页
如何对抗硬件断点之一 _第2页
如何对抗硬件断点之一 _第3页
资源描述:

《如何对抗硬件断点之一 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、如何对抗硬件断点之一  1.前言  在我跨入ollydbg的门的时候,就对ollydbg里面的各种断点充满了疑问,以前我总是不明白普通断点,内存断点,硬件断点有什么区别,他们为什么有些时候不能混用,他们的原理是什么,在学习了前辈们的文章以后,终于明白了一些东西。希望这篇文章能让你对硬件断点的原理和使用有一些帮助  2.正文  --------------------------------------------------  i.硬件断点的原理  在寄存器中,有这么一些寄存器,它们用于调试。人们把他们称为调试寄存器,调试寄存器一共有8个

2、名字分别从Dr0-Dr7。所以我们也把调试寄存器简单的称为Drx。  对于Dr0-Dr3的四个调试寄存器,他们的作用是存放中断的地址,例如:401000  对于Dr4,Dr5这两个寄存器我们一般不使用他们,保留  对于Dr6,Dr7这两个寄存器的作用是用来记录你在Dr0-Dr3中下断的地址的属性,比如:对这个401000是硬件读还是写,或者是执行;是对字节还是对字,或者是双字。  好了,从这里你可能明白一些东西。  1. 为什么在OD里面只能下4个硬件断点?   2. 为什么下硬件断点有byte,pshort天2国际.<Module

3、EntryPoint> //构造一个死循环0040015A  61       popad0040015B  94       xchgeax,esp  2.对0040015A这一行按下F4,由于死循环,程序一直运行  3.调试器的窗口里,右键--查看调试寄存器  结果在Drx里面显示:DR00040015A           //地址DR100000000DR200000000DR300000000DR6FFFF0FF0          //断点属性DR700000401  实验二(F8原理)  1.随便找一个程序,载入OD,

4、构造一个子程序的死循环  就像这样00400154t> E80100D03F   call4010015A    //EP,停在这里00400159  90       nop0040015A  90       nop       0040015B  90       nop0040015C  90       nop        //对这里下F2断点0040015D  C3       retn       //返回  2.按下F8,由于INT3断点,程序中断在0040015C  3.调试器的窗口里,右键--查看调试寄存器  

5、结果在Drx里面显示:DR000400159              //call的返回地址DR100000000DR200000000DR300000000DR6FFFF4FF1             //断点属性DR700000401  实验三(F7原理)  1.随便找一个程序,载入OD  2.双击调试器的窗口里的T标志,将TF从原来的0变成1  3.F9运行  结果程序断在了下面的一行  实验四(F2的原理)  1.用98的notepad吧,载入OD,构造一个死循环004010C> 90       nop        

6、-------------------------------------------------  3.总结  从实验一和实验二我们能清楚的看到,F4是直接将该行的地址放入drx里面,F8是将下一行的地址放入到drx里面,他们都使用了调试寄存器。从实验三中我们知道对于F7来说很可能使用的是将TF置一的办法,也就是说当我们按下F7的时候OD把TF置一。对于F2来说他是将,第一个字节悄悄的修改成了CC,虽然并没有显示给我看到这个是一个CC,当我们按下F2的时候,OD还没有运行,只是把这个表示记录下来,当运行的12下一页友情提醒:,特别!时候

7、他就把所有标记的字节修改了,尽管还是显示原来的代码,当然当他一暂停下来就又修改回来了。  上面的是实验中,F7的原理只是猜测,还没有很好的办法能证明他就是使用TF,下面我继续猜测一下内存断点的原理  1.将设置的内存断点的地址记录下来  2.对这个地址的内存页面修改其属性  如果是内存写断点,就修改为RE(可读,可执行)  如果是内存访问断点,就修改为NOACCESS(不可访问)  3.只要访问到这个页面就会产生相应的异常,然后由OD来判断是否与记录的断点一致,从而是否中断下来  -----------------------------

8、---------------------  4.后话  对于上面的F7和内存断点的原理,我还没想出什么好的办法去找出OD的原理,或许去调试一下ollydbg.exe是一个不错的建议。如果有哪

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

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

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