eye0eye 发表于 2009-5-23 13:25:58

【分享】提升权限到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;

马大哈 发表于 2009-5-25 13:50:58

<p>3环开放的API的做法里那貌似是唯一方案.</p>
<p>&nbsp;</p>
<p>NT系列本不是开放给3环调用的....</p>
<p>&nbsp;</p>
<p>不过有时确实方便多了.</p>

364589886 发表于 2009-5-24 07:35:24

提权不需要这么麻烦的,一句API就够了,NTadjustprivilege就够了
页: [1]
查看完整版本: 【分享】提升权限到debug