Thema: Delphi System-Privilegien

Einzelnen Beitrag anzeigen

hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#4

Re: System-Privilegien

  Alt 27. Jul 2008, 21:07
Hallo,

ich klemme gerade an der Stelle, dass nun so wirklich garnichts geht außerhalb des Prozesses (XP SP2, als Admin).

Ich rufe OpenProcess folgendermaßen auf:
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, PID); dabei bekomme ich, wenn ich mit PID := GetCurrentProcessID arbeite, bei ReadProcessMemory nur einen Berg Gerümpel und sobald ich einen Fremdprozess aufrufe ist GetLastError = 87 (ungültige Parameterkombination "The parameter is incorrect.").

Zuvor setze ich mit
Delphi-Quellcode:
function EnableTokenPrivilege(pszPrivilege: LPCTSTR): Boolean;
var
  hToken : THandle;
  tkp :_TOKEN_PRIVILEGES;
  ReturnLength: Cardinal;

begin
   hToken := 0;
   tkp.PrivilegeCount := 0;
   result := false;

    // Get a token for this process.
    if not _OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, @hToken)
      then begin writeln('Cannot open current process token.'); exit; end;

    // Get the LUID for the privilege.
    if(LookupPrivilegeValue(LP_SYSTEM_NAME_LOCAL, pszPrivilege,tkp.Privileges[0].Luid)) then
    begin
        tkp.PrivilegeCount := 1; // one privilege to set
        tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

        // Set the privilege for this process
        _AdjustTokenPrivileges(hToken,false, @tkp,
            sizeof(TOKEN_PRIVILEGES),PTOKEN_PRIVILEGES(nil), @ReturnLength);
        if (GetLastError() <> ERROR_SUCCESS) then begin writeln('Adjusting token privileges failed.'); exit; end;
    end;

  result := true;
end;
das Privileg SE_DEBUG_NAME = 'SeDebugPrivilege'#0 (was auch zu funktionieren scheint). (Übersetzt von hier)

------------------------------------------------

Nun, wie setze ich die Debuggingrechte?
Power is nothing without TControl
  Mit Zitat antworten Zitat