首页
社区
课程
招聘
[求助]谁动了我的DRX ???
发表于: 2012-3-31 00:12 5486

[求助]谁动了我的DRX ???

2012-3-31 00:12
5486
虚拟机双核。
步骤:
1.
设置DR0=8055A540,DR7=30402;重复动作:
MOV DR0,8055A540
OR DR7,30402
结果发现DR7被修改成30400;
2.
设置DR0=824376D4;重复动作,同样,不仅DR7被间隔修改,DR0也被修改。

我知道进入INT1后,系统会修改DRX,但问题是:之前我INLINE HOOK了INT 1,
只要进入INT 1,就会KDPRINT输出,从图上断定并没有进入INT1.

我的理解是:每个核都有自己的调试寄存器,当CPU切换时,对应的DRX也变化了。
但无论在哪个CPU执行,我都把DRX给设置了。而且只有2个核,DRX被修改的次数>4.
那到底是谁动了DRX呢?
怀疑我的理解是错误的,恳请大家指点一二。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 5
活跃值: (1131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你概念没有搞清楚,idt是和cpu内核数量相关,drx寄存器是和线程相关的.建议先看看张银奎的软件调试。。
2012-3-31 00:52
0
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
线程环境的一种吧。
2012-3-31 09:27
0
雪    币: 50
活跃值: (171)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
关闭控制台退出驱动后,设置的dr0地址还能断到其他程序,如果只是context,那断不到的吧?

PS:仔细翻了下软件调试,drx是与CPU相关的,原话:
在多处理器系统中,硬件断点是与CPU相关,针对一个CPU设置的硬件断点并不适于其他CPU.
2012-3-31 09:58
0
雪    币: 286
活跃值: (62)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
xjj
5
dr0->thread->cpu
2012-3-31 11:56
0
游客
登录 | 注册 方可回帖
返回
//