2014-11-06 27 views
1

我明白這是幹什麼的,但是它意味着ProcessHandle被設置爲-1,如下所示?當processHandle = -1時,OpenProcessToken做什麼?

.text:004011D2 83 EC 20    sub  esp, 20h 
.text:004011D5 8D 04 24    lea  eax, [esp+20h+TokenHandle] 
.text:004011D8 50     push eax   ; TokenHandle 
.text:004011D9 6A 28    push 28h   ; DesiredAccess 
.text:004011DB 6A FF    push 0FFFFFFFFh ; ProcessHandle 
.text:004011DD E8 96 04 00 00  call OpenProcessToken 

回答

4

-1進程句柄是當前進程的句柄。最好撥打GetCurrentProcess,正如MSDN推薦的那樣:

檢索當前進程的僞句柄。
...
僞句柄是一個特殊常量,當前爲(HANDLE)-1,它被解釋爲當前進程句柄。爲了與未來的操作系統兼容,最好調用GetCurrentProcess而不是對這個常量值進行硬編碼。