看流星社区

 找回密码
 注册账号
查看: 2640|回复: 1

Delphi提升程序权限代码

[复制链接]

该用户从未签到

发表于 2011-3-27 11:39:57 | 显示全部楼层 |阅读模式
Delphi提升程序权限代码
在几个群个做《征途》辅助的新朋友们总在问怎么写地址
我都说了看看广海 或者 辅助研究院的帖子,这些地方会有的
今天找了找,太多帖子了,乱…………,找到最后好像没有,可能我记错了
那我就发发,这是我的代码,如有雷同,纯属志同道合

//提升权限
    if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
    begin
      LookupPrivilegeValue(nil, 'SeDebugPrivilege', tkp.Privileges[0].Luid);
      tkp.PrivilegeCount:= 1;
      tkp.Privileges[0].Attributes:= $2;
      AdjustTokenPrivileges(hToken, FALSE, tkp, sizeof(tkp), otkp, dwLen);
    end;

我个人有点懒,别人写的很多,我就写了这么多

  hToken :THandle ;
  tkp :TOKEN_PRIVILEGES ;
  otkp :TOKEN_PRIVILEGES ;
  dwLen :Dword ;

N年前写的东西了,我也记不住参照谁的了,在此就不写了

该用户从未签到

发表于 2011-3-27 11:40:08 | 显示全部楼层
写成一个函数来调用
function AdjustProcessPrivilege(ProcessHandle: THandle; Token_Name: Pchar): boolean;
var
  Token: Cardinal;
  TokenPri: _TOKEN_PRIVILEGES;
  ProcessDest: int64;
  l: DWORD;
begin
  Result := False;
  if OpenProcessToken(ProcessHandle, TOKEN_Adjust_Privileges, Token) then
  begin
    if LookupPrivilegeValue(nil, Token_Name, ProcessDest) then
    begin
      TokenPri.PrivilegeCount := 1;
      TokenPri.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      TokenPri.Privileges[0].Luid := ProcessDest;
      l := 0;
      //更新進程令牌,成功返回TRUE
      if AdjustTokenPrivileges(Token, False, TokenPri, sizeof(TokenPri), nil, l) then
      Result := True;
    end;
  end;
end;

//调用函数
AdjustProcessPrivilege(GetCurrentProcess, 'SeDebugPrivilege');
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-14 23:55

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表