这三个函数主要用来提升进程的权限 
1 OpenProcessToken()函数:获取进程的令牌句柄 
OpenProcessToken的原型. 
BOOL WINAPI OpenProcessToken( 
__in HANDLE ProcessHandle, 
__in DWORD DesiredAccess, 
__out PHANDLE TokenHandle 
); 
第一个参数 进程句柄(当前进程为GetCurrentProcess()为参数) 
第二个参数 访问令牌特权(可以参考msdnhttps://msdn.microsoft.com/zh-cn/library/aa374905) 
第三个参数 令牌句柄 返回的参数 就是AdjustTokenPrivileges的第一个参数 
2LookupPrivilegeValue()函数: 
在认识这个函数之前我们需要了解一下结构体 
TOKEN_PRIVILEGES结构体 
typedef struct _TOKEN_PRIVILEGES 

DWORD PrivilegeCount; 
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; 
}TOKEN_PRIVILEGES; 
第一个参数是个特权数组。 
第二个参数是要修改的特权数目 
LUID_AND_ATTRIBUTES 结构体 
typedef struct _LUID_AND_ATTRIBUTES 

LUID Luid; 
DWORD Attributes; 
} LUID_AND_ATTRIBUTES;

LookupPrivilegeValue的原型 
BOOL WINAPI LookupPrivilegeValue( 
__in_opt LPCTSTR lpSystemName, 
__in LPCTSTR lpName, 
__out PLUID lpLuid 
); 
第一个参数是系统的名字,如果为NULL,就是本地名字(这里就填NULL) 
第二个参数是特权的名字,要查看详细特权,在这里写SE_DEBUG_NAME 
第三个参数就可以通过指针返回一个LUID类型的Luid的标识了。 通过这个值就可以填入刚才的结构体里了。 
3 AdjustTokenPrivileges()函数 
BOOL WINAPI AdjustTokenPrivileges( 
__in HANDLE TokenHandle, 
__in BOOL DisableAllPrivileges, 
__in_opt PTOKEN_PRIVILEGES NewState, 
__in DWORD BufferLength, 
__out_opt PTOKEN_PRIVILEGES PreviousState, 
__out_opt PDWORD ReturnLength 
); 
第一个参数为OpenProcessToken第三个指针参数传出的句柄值 
第二个参数为是否禁用所有所有的特权(这里填false) 
第三个参数为新的TOKEN_PRIVILEGES的特权结构体指针 
第四个参数是上面结构体的字节长度(sizeof) 
第五个参数是 接受原先的特权的结构体 
第六个参数也是这个结构体的字节长度的指针

最后要记得调用CloseHandle()函数 
我们可以将上述函数组合为一个方法

void EenableDebugPriv()
{HANDLE hToken;TOKEN_PRIVILEGES tkp;OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken);LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);tkp.PrivilegeCount = 1;tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);CloseHandle( hToken );
}

这样就可以修改相关进程的权限了

原贴地址:https://blog.csdn.net/cxq_1993/article/details/48053997

windowsAPI之OpenProcessToken,AdjustTokenPrivileges 和LookupPrivilegeValue转相关推荐

  1. OpenProcessToken LookupPrivilegeValue 和AdjustTokenPrivilege

    文章目录 OpenProcessToken 函数功能 函数申明 第一个参数 第二个参数 第三个参数 返回值 补充: LookupPrivilegeValue 函数功能 函数声明 第一个参数 第二个参数 ...

  2. Windows提升进程权限

    Windows提升进程权限 文章一: 在枚举/结束系统进程或操作系统服务时,会出现权限不足而失败的情况,这时就需要提升自己进程到系统权限,其实提升权限的代码很简单的,看过的最经典的应该是<WIN ...

  3. Sality病毒分析

    Sality病毒分析 基本信息 MD5:E100C2C3F93CABF695256362E7DE4443 样本来源:https://www.52pojie.cn/thread-537381-1-1.h ...

  4. LNK2019:无法解析的外部符号, _imp_OpenProcessToken, 该符号在函数main中被引用

    开发环境:Win10 + QT5.9.9 + MSVC2015-64bit 背景:需要调用windowsAPI,OpenProcessToken(),结果报错了,见下图: 看到LNK这个词,我就知道是 ...

  5. GetCurrentProcessID、OpenProcessToken、LookupPrivilegeValue、AdjustTokenPrivileges

    GetCurrentProcessID            得到当前进程的ID OpenProcessToken               得到进程的令牌句柄 LookupPrivilegeVal ...

  6. GetCurrentProcessID、OpenProcessToken、LookupPrivilegeValue

    GetCurrentProcessID           得到当前进程的ID OpenProcessToken         得到进程的令牌句柄 LookupPrivilegeValue      ...

  7. API函数的中文说明及所有的32位WindowsAPI函数的定义

    API函数的中文说明及所有的32位WindowsAPI函数的定义 ============================API函数的中文说明============================= ...

  8. [转载]提升进程权限-OpenProcessToken等函数的用法

    GetCurrentProcessID 得到当前进程的ID OpenProcessToken 得到进程的令牌句柄LookupPrivilegeValue 查询进程的权限 AdjustTokenPriv ...

  9. WindowsAPI关机、重启

    #include "Windows.h" //强制关闭计算机 bool systemShutDown() {     HANDLE hToken; TOKEN_PRIVILEGES ...

最新文章

  1. 【数据结构第一周】最大子列和问题整理
  2. java代码如何降低重复率_影响网站跳出率的主要因素及如何降低网站跳出率?...
  3. 文献学习(part80-B)--Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?
  4. [原]一步一步自己制作弹出框
  5. LeetCode 1953. 你可以工作的最大周数
  6. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。...
  7. Sublime 编译运行JavaScript
  8. goland设置代码颜色主题(同Sublime Text 3的代码颜色一样)
  9. 指针变量的所占字节数大小确定
  10. java设置word页面为A3_word页面怎么设置为A3打印格式
  11. 汇编语言程序设计技巧详解(附例题)
  12. 助学贷款系统导入预申请时问题解决办法汇总
  13. Swift桥接OC,手动创建Objective-OC Bridging Header
  14. 高等数学:数列前后项【递推式的单调性】与【整个数列单调性】的关系
  15. 不使用插件,小程序也能完整的渲染富文本(视频展现,图片自适应)
  16. 追踪算法MUSTer体验
  17. Linux攻关之基础模块十二 进程相关
  18. ubuntu 环境搭建问题归纳
  19. 2023最新泛站群系统,一键搭建泛目录,泛二级
  20. 胡萝卜的故事 第四篇

热门文章

  1. tkinter GUI版通信录管理系统
  2. java gz压缩文件解压
  3. Nordic DFU OTA参考资料
  4. 无法访问srv解析_windows能连网络,可是打不开网页,出现无法解析server的DNS
  5. 移远 4G EC20 高通 9X07 工业级 车规级 CAT4 CAT6
  6. 分享一个刷网页PV的python小脚本
  7. 大数据用户画像系统架构设计
  8. 幼儿计算机试题及答案,幼儿园老师计算机操作试题
  9. 从0到1徒手撸一个简单的glup插件
  10. 如何使用Wine在Ubuntu中安装Evernote 4.0