|
|
|
|
|
|
|
Windows内核调试
帖子发起人: 小兵 发起时间: 2010-04-11 12:45 下午 回复: 7
|
帖子排序:
|
|
|
|
2010-04-11, 12:45 下午
|
小兵
注册: 2010-03-30
发 贴: 19
|
请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
看过《软件调试》中用ReadFile函数说明Windows系统的调用过程后,想通过Windbg看到sysenter指令进入KiFastCallEntry例程中的调试过程。
( //为了把问题说清楚,增加以下说明 。双机OS都是: Winxp SP2
程序执行到ring3的NtReadFile函数调用sysenter指令时,输入t后,Windbg没有进入ring0,而是已执行后返回NTdll中。 请问Windbg能否跟踪这个NtReadFile函数进入KiFastCallEntry例程的执行过程? )
我通过双机调试,昨天试了一天都没成功。 不知道有什么解决办法,谢谢!
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2010-04-11, 19:58 下午
|
SuperMouse
注册: 2008-10-31
发 贴: 8
|
Re: 请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
这个不仅仅是要“双机调试”,而是要进行双机的内核调试。如果仅仅是在用户态进行双机调试,自然是不能进入到内核态的代码的。
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2010-04-12, 13:32 下午
|
小兵
注册: 2010-03-30
发 贴: 19
|
Re: 请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
实验环境就是 "双机的内核调试" ,呵呵 这个应该不是问题的原因所在。 谢谢!
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2010-04-12, 18:22 下午
|
compiler
注册: 2008-04-22
发 贴: 21
|
Re: 请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
sysenter指令 是不能t的 跟我当初的想法一样
应该是在KiFastCallEntry下断点
不过断点命中之后要尽快去掉,应为这个系统会频繁调用
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2010-04-14, 10:57 上午
|
小兵
注册: 2010-03-30
发 贴: 19
|
Re: 请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
是呀,直觉上感觉可以"t"进去,呵呵。 谢谢!
一个相关问题是从ring0返回ring3时,在函数KiSystemCallExit2中,应该执行sysexit指令。(《软件调试》P181)
但是对KiSystemCallExit2和KiSystemCallExit3都下断点后, 每次刚进入KiSystemCallExit2(执行第一条指令后), 就直接返回ntdll中。 请问这是什么原因? 谢谢大家帮助!
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2010-04-15, 12:24 下午
|
compiler
注册: 2008-04-22
发 贴: 21
|
Re: 请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2010-04-15, 18:39 下午
|
小兵
注册: 2010-03-30
发 贴: 19
|
Re: 请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
在ntdll没有设置断点,并且我觉得和ntdll断点没有关系,因为KiSystemCallExit2在ring0。
可能在ring0还需要设置什么断点,在刚进入KiSystemCallExit2输入't'指令后,就不会直接返回到ntdll中,而是执行sysexit指令。
问题是: 在ring0还要设置什么断点呀? 天呀!呵呵
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2010-04-16, 14:59 下午
|
小兵
注册: 2010-03-30
发 贴: 19
|
Re: 请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
我用命令u查看KiSystemCallExit2中sysexit 指令的地址,然后直接对该地址下断点,就可以了。 不知道有其它方法吗?
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » Windows内核调试 » 请问sysenter指令进入KiFastCallEntry例程的调试过程
|
|
|
|
|
|