![]() |
system priveleges
Hallo,
ich suche derzeit eine möglichkeit meinem Programm beim start System Privilegien zu geben da ich andernfalls bei manchen fremd-applikationen nicht das handle auslesen kann. Hat das zufällig schon jmd gemacht? Gibts eine API dafür? gruß |
Re: system priveleges
Starte es eben enzweder unter einem anderem Benutzerkonto mit
![]()
Delphi-Quellcode:
zu holen, das geht aber auch nur, wenn man die Rechte dázu hat. Ansoinsten wäre es eine eklatante Sicherheitslücke, wenn sich ein Programm einfach so Systemrechte holen könnte. Dann musst du eben damit leben, dass es ohne die nötigen Rechte nicht möglich ist an alle Informationen dranzukommen.
function EnablePrivilege(const Privilege: string; fEnable: Boolean; out PreviousState: Boolean): DWORD;
var Token : THandle; NewState : TTokenPrivileges; Luid : TLargeInteger; PrevState : TTokenPrivileges; Return : DWORD; begin SetLastError(0); // Clear last system error state PreviousState := True; if (GetVersion() > $80000000) then // Win9x Result := ERROR_SUCCESS else // WinNT begin if OpenProcessToken(GetCurrentProcess(), MAXIMUM_ALLOWED, Token) then begin try if LookupPrivilegeValue(nil, PChar(Privilege), Luid) then begin NewState.PrivilegeCount := 1; NewState.Privileges[0].Luid := Luid; if fEnable then NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED else NewState.Privileges[0].Attributes := 0; if AdjustTokenPrivileges(Token, False, NewState, SizeOf(TTokenPrivileges), PrevState, Return) then begin PreviousState := (PrevState.Privileges[0].Attributes and SE_PRIVILEGE_ENABLED <> 0); end; end; finally CloseHandle(Token); end; end; Result := GetLastError; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz