jy40 发表于 2020-3-26 17:29

windbg遇到的关于.process命令的问题

今天在使用windbg双机调试windows系统的时候遇到了这么个问题,在使用.process指令更改当前所挂靠的进程的时候无法更改具体的情况如下
kd> !process 0 0

Failed to get VadRoot
PROCESS 815b1998SessionId: 0Cid: 074c    Peb: 7ffde000ParentCid: 05a0
    DirBase: 08e40340ObjectTable: e2874848HandleCount:61.
    Image: OllyDBG.EXE

kd> .process 815b1998
Implicit process is now 815b1998
WARNING: .cache forcedecodeuser is not enabled
kd> .process
Implicit process is now 805539a0
请问这种出现的无法更改是什么情况呢
然后如果使用.process /i 815b1998后再运行的方式确实更改了.process


kd> .process /i 815b1998
You need to continue execution (press 'g' <enter>) for the context
to be switched. When the debugger breaks in again, you will be in
the new process context.
kd> g
Break instruction exception - code 80000003 (first chance)
nt!RtlpBreakWithStatusInstruction:
80528bdc cc            int   3
kd> .process
Implicit process is now 815b1998
但是随后跟踪搜索他的_EPROCESS结构体,发现其中的pid为4,进程名为系统进程
kd> dt _KPRCB ffdff120
ntdll!_KPRCB
   +0x000 MinorVersion   : 1
   +0x002 MajorVersion   : 1
   +0x004 CurrentThread    : 0x817bb3c8 _KTHREAD
;获取ethread结构体地址
kd> dt _ethread 0x817bb3c8
ntdll!_ETHREAD
   +0x000 Tcb            : _KTHREAD
   +0x220 ThreadsProcess   : 0x817bd830 _EPROCESS
;获取进程结构体地址
kd> dt _EPROCESS 0x817bd830
ntdll!_EPROCESS
   +0x000 Pcb            : _KPROCESS
   +0x06c ProcessLock      : _EX_PUSH_LOCK
   +0x070 CreateTime       : _LARGE_INTEGER 0x0
   +0x078 ExitTime         : _LARGE_INTEGER 0x0
   +0x080 RundownProtect   : _EX_RUNDOWN_REF
   +0x084 UniqueProcessId: 0x00000004 Void
   +0x174 ImageFileName    : "System"
;获取到的进程结构体,部分数据忽略
求教为何会出现这种.process指令无法挂靠,挂靠后进程不对的情况,如何解决?
页: [1]
查看完整版本: windbg遇到的关于.process命令的问题