【分享】提升权限到debug
function EnableDebugPrivilege: Boolean;
function EnablePrivilege(hToken: Cardinal; PrivName: string;
bEnable: Boolean): Boolean;
var
TP: TOKEN_PRIVILEGES;
Dummy: Cardinal;
begin
TP.PrivilegeCount := 1;
LookupPrivilegeValue(nil, PChar(PrivName), TP.Privileges.Luid);
if bEnable then
TP.Privileges.Attributes := SE_PRIVILEGE_ENABLED
else
TP.Privileges.Attributes := 0;
AdjustTokenPrivileges(hToken, false, TP, SizeOf(TP), nil, Dummy);
Result := GetLastError = ERROR_SUCCESS;
end;
var
hToken: Cardinal;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
Result := EnablePrivilege(hToken, 'SeDebugPrivilege', true);
CloseHandle(hToken);
end;
<p>3环开放的API的做法里那貌似是唯一方案.</p>
<p> </p>
<p>NT系列本不是开放给3环调用的....</p>
<p> </p>
<p>不过有时确实方便多了.</p> 提权不需要这么麻烦的,一句API就够了,NTadjustprivilege就够了
页:
[1]