Windbg 获取已终止进程的退出代码

Windbg 获取已终止进程的退出代码,windbg,Windbg,我正在WinDbg中调试进程,进程已退出: 0:009> g (bunch of regs...) ntdll!NtTerminateProcess+0xc: 770ad43c c20800 ret 8 0:009> g ^ No runnable debuggees error in 'g' 此时,如何获取进程的退出代码?您可以将其作为的第二个参数。只是它的内核版本,对吗 0:000> kb ChildEBP RetAddr Arg

我正在WinDbg中调试进程,进程已退出:

0:009> g
(bunch of regs...)
ntdll!NtTerminateProcess+0xc:
770ad43c c20800          ret     8
0:009> g
       ^ No runnable debuggees error in 'g'

此时,如何获取进程的退出代码?

您可以将其作为的第二个参数。只是它的内核版本,对吗

0:000> kb
ChildEBP RetAddr  Args to Child              
003ff414 7774d5ac ffffffff 1234abcd 00000000 ntdll!ZwTerminateProcess+0x12
003ff430 759c79ec 00000000 77e8f3b0 ffffffff ntdll!RtlExitUserProcess+0x85
...
或RtlExitUserProcess的第四个参数

0:000> kn
 # ChildEBP RetAddr  
00 003ff414 7774d5ac ntdll!ZwTerminateProcess+0x12
01 003ff430 759c79ec ntdll!RtlExitUserProcess+0x85
...

0:000> .frame 01
01 003ff430 759c79ec ntdll!RtlExitUserProcess+0x85

0:000> dd esp L4
003ff414  7771fcc2 7774d5ac ffffffff 1234abcd

我认为zwtterminateprocess=Kernel,NtTerminateProcess=User。不管怎样,效果很好,谢谢!在用户模式下,Nt*和Zw*都是相同的函数(注意两个符号名的地址相同):0:048>
x ntdll*terminateprocess
774BBBEB0 ntdll!NtTerminateProcess()774bbeb0 ntdll!ZwTerminateProcess(