2
我碰到一个奇怪的问题:为什么PsGetCurrentProcessId()返回null?
在“系统”进程的线程,我叫PsGetCurrentProcessId()
,却得到了一个空值。
此外,我检查了线程的_CLIENT_ID,发现UniqueProcess和UniqueThread都为null。
我也检查了当前进程,即'系统'进程,发现它的UniqueProcessId是4,这是正常的。
为什么?
我碰到一个奇怪的问题:为什么PsGetCurrentProcessId()返回null?
在“系统”进程的线程,我叫PsGetCurrentProcessId()
,却得到了一个空值。
此外,我检查了线程的_CLIENT_ID,发现UniqueProcess和UniqueThread都为null。
我也检查了当前进程,即'系统'进程,发现它的UniqueProcessId是4,这是正常的。
为什么?
系统进程ID是一个非常不错的“黑客”,因此多个工具(如ProcExp,windbg)不需要特殊情况下内核线程或空闲函数调度程序。
如果你是一个内核唯一的线程,你没有关联的进程(除非你自己攻击一个)。
你是什么意思?“我也检查了当前的过程”,即你用什么系统调用这样做?此外,所讨论的线程来自哪里,即当您调用PsGetCurrentProcessId时,您处于什么环境? –
我用WinDBG检查那些。 – xmllmx
您是如何确定该线程的“当前进程”是系统进程的? –