请教张老师关于windbg切换上下文的疑惑
WinDbg
请教张老师关于windbg切换上下文的疑惑
Eugen
2017-06-04, 23:39 下午
张老师,你好:
最近我在看<软件调试>的第30章,对书中进程上下文和线程上下文的概念有点疑惑,希望你能帮助我,谢谢。
1.书中,你提到的进程上下文是不是指进程的页目录表?
2.当用.process切换进程上下文后,是不是仅仅改变了Cr3的值,所以可以读取目标进程的进程空间的内容,但并没有切换到目标进程?这个命令相当于只做了KeAttachProcess,并没有做KeSwapThread?
3.如果运行.process /i /p命令,是不是既做了改变寄存器Cr3的值又做了切换进程的动作?
4.寄存器上下文,是不是就是线程调用KiFrameToContext时保存在线程栈中的Context结构?windbg的.thread命令是不是相当于调用了KeSetThreadContext/KeGetThreadContext两个函数?
Re: 请教张老师关于windbg切换上下文的疑惑
格蠹老雷
2017-06-08, 19:32 下午
在客栈,没有书在手边,问1,相关但不确切, 问2, 建议跟踪一下调试器看 问3,这是依赖目标系统的,是确实切换了进程, 问4, 有关但不确切
上下文是个不精确的词,范围很广,要看具体语境
Re: 请教张老师关于windbg切换上下文的疑惑
Eugen
2017-06-13, 22:40 下午
张老师:
感谢你在百忙之中回答我的问题。我调试了一把
问题2和3,发现.process 命令不带参数/i,确实不会修改cr3。既然不能切换进程,不知道.process EPROCESS这个命令背后做了啥了...