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
您是如何確定該線程的「當前進程」是系統進程的? –