zoukankan      html  css  js  c++  java
  • 【VC++积累】之二、黑客编程之提权SDK

     提权啊。。。。1要打开当前进程的权限令牌。。。。。。。2要获取权限标识。。。。。。。3要提升令牌权限。。。。。。。。。。。。3个API函数搞定

    分别是:

               OpenProcessToken();
               LookupPrivilegeValue();
               AdjustTokenPrivileges();


          BOOL OpenProcessToken(
    
      __in HANDLE ProcessHandle, //要修改访问权限的进程句柄
      __in DWORD DesiredAccess, //指定你要进行的操作类型
      __out PHANDLE TokenHandle //返回的访问令牌指针
      );              
    
    
    
          BOOL LookupPrivilegevalue(
    
      LPCTSTR lpSystemName, // 表示所要查看的系统,本地系统直接用NULL
      LPCTSTR lpName, // 表示所要查看的特权信息的名称
      PLUID lpLuid //接收所返回的制定特权名称的信息
      );      
    
    
    
    
    
    
                   BOOL AdjustTokenPrivileges(
      HANDLE TokenHandle, //包含特权的句柄
      BOOL DisableAllPrivileges,//禁用所有权限标志
      PTOKEN_PRIVILEGESNewState,//新特权信息的指针(结构体)
      DWORD BufferLength, //缓冲数据大小,以字节为单位的PreviousState的缓存区(sizeof)
      PTOKEN_PRIVILEGES PreviousState,//接收被改变特权当前状态的Buffer
      PDWORD ReturnLength //接收PreviousState缓存区要求的大小
      );
    


    下面来看一下代码:

    HANDLE TokenHandle;
            if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &TokenHandle))
            {
                    return ;
            }
    
            TOKEN_PRIVILEGES t_privileges = {0};
            if(!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &t_privileges.Privileges[0].Luid))
            {
                    return ;
            }
            t_privileges.PrivilegeCount = 1;
            t_privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    
            if(!AdjustTokenPrivileges(TokenHandle, FALSE, &t_privileges, sizeof(TOKEN_PRIVILEGES), NULL, NULL))
            {
                    CloseHandle(TokenHandle);
                    return ;
            }

    呃。。。。忘了说了。。。。WINDOWS NT 以上的内核需要提权。。。。进行对系统的操作(关机  重启 注销)98啥的就不用了  直接调用 ExitWindowsEx就行了。。。。。。。这里只说提权了    要了解的话 去看一下MSDN这个API 函数的用法


    2012/8/5

    jofranks 于南昌

  • 相关阅读:
    计算机网络学习资料
    操作系统学习资料
    2020 Multi-University Training Contest 6 1005 Fragrant numbers(区间dp)
    2020 Multi-University Training Contest 6 1010 Expectation(矩阵树定理)
    2020 Multi-University Training Contest 4 1012 Last Problem(01背包)
    2020 Multi-University Training Contest 4 1012 Last Problem(构造)
    2020 Multi-University Training Contest 4 1007 Go Running(网络流)
    2020 Multi-University Training Contest 3 1006 X Number
    静态网页开发基础
    包装类
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211425.html
Copyright © 2011-2022 走看看