zoukankan      html  css  js  c++  java
  • EnableDebugPriv;

    procedure EnableDebugPriv;
    const SE_DEBUG_NAME = 'SeDebugPrivilege';
    var hToken: THandle;
      lpLuid: TLargeInteger;
      tkp: TOKEN_PRIVILEGES;
      bRes: Boolean;
      retlen: DWORD;
      szLog: string;
    begin

        //*以调整和查询的方式,打开本进程的令牌环*/
      bRes := OpenProcessToken( GetCurrentProcess(),
                                TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
                                hToken );
      if (bRes) then
      begin
        bRes := LookupPrivilegeValue(nil, SE_DEBUG_NAME, lpLuid);
        if(not bRes) then
        begin
          CloseHandle(hToken);
        end else
        begin
          tkp.PrivilegeCount := 1;
          tkp.Privileges[0].Luid := lpLuid;
          tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

            bRes := AdjustTokenPrivileges( hToken,
                                         false,
                                         tkp,
                                         sizeof(TOKEN_PRIVILEGES),
                                         nil,
                                         retlen );
          if bRes then
          begin
            szLog := 'IS ok';
          end else
          begin
            szLog := 'IS FAIL';
          end;

        end;
      end;
    end;
  • 相关阅读:
    Android Studio 第一次启动应该注意的事项
    synchronized 和 volatile 比较
    synchronized 和 volatile 比较
    【Light】[1214]Large Division
    【Light】[1214]Large Division
    【Light】[1116]Ekka Dokka
    【Light】[1116]Ekka Dokka
    【Light】[1078]Integer Divisibility
    【Light】[1078]Integer Divisibility
    【Light】[1008]Fibsieve`s Fantabulous Birthday
  • 原文地址:https://www.cnblogs.com/chenhs/p/1776880.html
Copyright © 2011-2022 走看看