如何对抗硬件断点之一 --- 调试寄存器
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,由于死循环,程序一直运行着
更多精彩
赞助商链接