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

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

 2007-01-14 16:44:34 来源:WEB开发网   
核心提示: 3.调试器的窗口里,右键--查看调试寄存器结果在Drx里面显示:DR00040015A//地址DR100000000DR200000000DR300000000DR6FFFF0FF0//断点属性DR700000401实验二(F8原理)1.随便找一个程序,如何对抗硬件断点之一 --- 调试寄

3.调试器的窗口里,右键--查看调试寄存器

结果在Drx里面显示:

DR00040015A           //地址
DR100000000
DR200000000
DR300000000
DR6FFFF0FF0          //断点属性
DR700000401

实验二(F8原理)

1.随便找一个程序,载入OD,构造一个子程序的死循环

就像这样

00400154t> E80100D03F   call4010015A    //EP,停在这里
00400159  90       nop
0040015A  90       nop       
0040015B  90       nop
0040015C  90       nop        //对这里下F2断点
0040015D  C3       retn       //返回

2.按下F8,由于INT3断点,程序中断在0040015C

3.调试器的窗口里,右键--查看调试寄存器

结果在Drx里面显示:

DR000400159              //call的返回地址
DR100000000
DR200000000
DR300000000
DR6FFFF4FF1             //断点属性
DR700000401

实验三(F7原理)

1.随便找一个程序,载入OD

2.双击调试器的窗口里的T标志,将TF从原来的0变成1

3.F9运行

结果程序断在了下面的一行

实验四(F2的原理)

1.用98的notepad吧,载入OD,构造一个死循环

004010CCN> 90       nop                //EP,挺在这里
004010CD  90       nop
004010CE ^EBFC      jmpshortNOTEPAD.<ModuleEntryPoint>//死循环
004010D0  90       nop                //在这里按下F2,普通断点
004010D1  90       nop

2.按下F9,由于死循环,程序一直运行着

Tags:如何 对抗 硬件

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