[Delphi] 권한상승

- 09-04
- 2,369 회
- 0 건
[code]<br /> function SetPrivilege(lpszPrivilege: string; Enabled: Boolean): Boolean;<br /> var<br /> TokenHandle: THandle;<br /> TokenPriv, TokenPriv_Prev: TOKEN_PRIVILEGES;<br /> ReturnLength: Cardinal;<br /> begin<br /> if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TokenHandle) then<br /> begin<br /> try<br /> if LookupPrivilegeValue(nil, PChar(lpszPrivilege), TokenPriv.Privileges[0].Luid) then<br /> begin<br /> TokenPriv.PrivilegeCount := 1; case Enabled of<br /> True: TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;<br /> False: TokenPriv.Privileges[0].Attributes := 0;<br /> end; ReturnLength := 0;<br /> TokenPriv_Prev := TokenPriv; AdjustTokenPrivileges(TokenHandle, False, TokenPriv, SizeOf(TokenPriv_Prev), TokenPriv_Prev, ReturnLength);<br /> end;<br /> finally<br /> CloseHandle(TokenHandle);<br /> end;<br /> end; Result := GetLastError = ERROR_SUCCESS;<br /> if not Result then raise Exception.Create(SysErrorMessage(GetLastError));<br /> end;<br /> [/code]
로그인 후 댓글내용을 입력해주세요