-
-
[求助]多核CPU硬件断点的疑问
-
发表于:
2014-10-7 15:13
4437
-
首先说我的目的,是想在自己的驱动里操作Drx寄存器,对某个内核全局变量下断点,然后定位到修改这个变量的关键代码。
首先说我知道对于多核CPU,IDT是保存在每个CPU的_KPCR结构中的,而对于内核线程,Drx是保存在每个CPU的_KPRCB结构的ProcessorState字段的SpecialRegisters字段
那么问题来了,我如果想下硬件写入断点,要怎么操作呢?
直接mov drx, xxx只是给处理当前线程的cpu的drx赋值了吧,我要对某变量下硬断,难道要修改全部cpu的_KPRCB吗?
最后关于定位关键代码,我只能想到hook IDT 1 号中断,然后在堆栈里找之前压入的eip值这个方法,感觉好麻烦……还有没有别的方法?比如像应用层GetThreadContext这样简单粗暴的函数啥的…………
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!