首页
社区
课程
招聘
[求助]假如用Dr 调试寄存器对内核空间下硬件断点 会怎么样呢?
发表于: 2009-10-8 21:35 6339

[求助]假如用Dr 调试寄存器对内核空间下硬件断点 会怎么样呢?

2009-10-8 21:35
6339
都不知道该选“系统底层”还是选 “调试逆向” 了。。
为什么不能单击调试内核呢? 对内核空间下硬件断点按道理说cpu是不管3721的他直接发出1号中断,然后系统分发异常并寻找内核调试器, 假如此时hook住 分发异常的函数 不就可以实现对驱动程序下断点了吗? 难道还会蓝屏重启不成(蓝屏也没道理啊)?

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
2
是可以的,SOFTICE和SYSER不就是如此?但是单机调试器需要完全脱离OS来实现自己的UI、符号解析、文字系统甚至网络通讯等,复杂性大大增加
2009-10-8 21:42
0
雪    币: 246
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
为什么要单机完全脱离OS呢?我仅仅对一个驱动程序下了断点,并没有使其他的程序都停下来啊!
2009-10-9 12:17
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
4
若要调试OS,就要脱离OS了,要准确的调试驱动程序,当然要停止OS的工作
2009-10-9 13:25
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
5
嗯。。不交互的话。。挂接INT 1处理就可以了。。注意区分单步,,
2009-10-9 13:26
0
雪    币: 246
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
咦? 挂接INT 1 处理一下就可以啊~ 那岂不是可以通过硬件断点 就能将指定驱动程序给“暂停”下来?没想到驱动程序也可以暂停啊!
2009-10-9 22:55
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
7
……
要是驱动程序就不能暂停,那系统的那么多个中断级别是干嘛用的楼主能不能停止问这些雷人的问题,好好踏踏实实地学习相应的原理知识啊
2009-10-10 00:00
0
雪    币: 258
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
驱动程序的Thread可以暂停,但是,如果你要对系统任意Thread都可暂停可交互的话,势必要用到一些显示,键盘或者网络的sys,于是这就就导致了线程被暂停无法交互,而停下来的Thread又无法收到继续执行的命令,于是就死锁了。
所以,要调试sys,关键要处理好可暂停的Thread和不可暂停的Thread。一些与交互有关的Native API要绕过,否则如果断点在该Native API就不好玩了。

楼主爱学习是好事,不过,似乎问的多了些,如果自己动手尝试多一些,查资料多一些会更好。
2009-10-10 12:02
0
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这个就是调试会对被调试的对象会产生或多或少的影响,因为int1中断,调试寄存器之类的都是系统的一部分。
有时候影响大到无法正常调试,比如说,你用双机调试去调试“内核如何支持调试”就会发现有点头晕。
2009-10-10 17:02
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我已经对楼主做了详细调查,特地前来围观。
支持小聪
买本书看看好了,整个看雪都是楼主的求助帖了。
2009-10-10 18:47
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
11
顶楼上诸位,楼主真是勤学好问啊,拜服~
2009-10-10 22:33
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
12
飘过留名!!!
2009-10-10 22:42
0
游客
登录 | 注册 方可回帖
返回
//