WEB开发网
开发学院网络安全黑客技术 如何对抗硬件断点之一 --- 调试寄存器 阅读

如何对抗硬件断点之一 --- 调试寄存器

 2007-01-14 16:44:34 来源:WEB开发网   
核心提示: 3.使用LordPE(不要用ollydump)将这个程序dump下来4.重新载入OD来看看成什么样子了004010CCd>$90nop004010CD.90nop004010CE.^EBFCjmpshortdumped.<ModuleEntryPoint>004010D0

3.使用LordPE(不要用ollydump)将这个程序dump下来

4.重新载入OD

来看看成什么样子了

004010CCd>$ 90      nop
004010CD  . 90      nop
004010CE  .^EBFC     jmpshortdumped.<ModuleEntryPoint>
004010D0   CC      int3                 //这里变成了CC了
004010D1   90      nop

--------------------------------------------------

3.总结

从实验一和实验二我们能清楚的看到,F4是直接将该行的地址放入drx里面,F8是将下一行的地址放入到drx里面,他们都使用了调试寄存器。从实验三中我们知道对于F7来说很可能使用的是将TF置一的办法,也就是说当我们按下F7的时候OD把TF置一。对于F2来说他是将,第一个字节悄悄的修改成了CC,虽然并没有显示给我看到这个是一个CC,当我们按下F2的时候,OD还没有运行,只是把这个表示记录下来,当运行的时候他就把所有标记的字节修改了,尽管还是显示原来的代码,当然当他一暂停下来就又修改回来了。

上面的是实验中,F7的原理只是猜测,还没有很好的办法能证明他就是使用TF,下面我继续猜测一下内存断点的原理

1.将设置的内存断点的地址记录下来

2.对这个地址的内存页面修改其属性

如果是内存写断点,就修改为RE(可读,可执行)

如果是内存访问断点,就修改为NOACCESS(不可访问)

3.只要访问到这个页面就会产生相应的异常,然后由OD来判断是否与记录的断点一致,从而是否中断下来

--------------------------------------------------

4.后话

对于上面的F7和内存断点的原理,我还没想出什么好的办法去找出OD的原理,或许去调试一下ollydbg.exe是一个不错的建议。如果有哪位兄弟知道有什么好办法,希望能告诉我。当然也很欢迎各位和我讨论。

上一页  1 2 3 

Tags:如何 对抗 硬件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接