Einzelnen Beitrag anzeigen

brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#5

Re: CreateRemoteThread: benötigte Rechte

  Alt 11. Apr 2005, 18:53
Das Zitat was du angefügt hast bezieht sich alleine auf das Handle das du mit OpenProcess von dem Process bekommen hast in dem den Thread erstellen willst.

D.h. es sollte bei allen Prozessen funktionieren die du EROLGREICH mit OpenProcess geöddnet hast. Bei Systemprozessen musst du vorher die Rechte bekommen.

der Code dafür:
Delphi-Quellcode:
function GetDebugPrivilege: boolean; stdcall;
var hToken,rel: cardinal;
    tkp: TOKEN_PRIVILEGES;
    luid: int64;
begin
  result := false;
  if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
  begin
    if LookupPrivilegeValue(nil, 'SeDebugPrivilege', luid) then
    begin
      tkp.PrivilegeCount := 1;
      tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      tkp.Privileges[0].Luid := luid;
      result := AdjustTokenPrivileges(hToken, FALSE, tkp, sizeof(tkp), nil, rel);
    end;
    CloseHandle(hToken);
  end;
end;
  Mit Zitat antworten Zitat