修改(調整)本程序許可權
阿新 • • 發佈:2018-12-03
Windows中的普通程序是有一定許可權的,想要做一些超出許可權的事情,就要提權。比如關機:
#include <stdio.h> #include <Windows.h> int main() { HANDLE hToken; TOKEN_PRIVILEGES tkp; // 獲取當前程序訪問標記 if( OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken)==0 ) return FALSE; // 生成TOKEN_PRIVILEGES結構 LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); // 檢視系統許可權特權值,返回資訊到LUID結構體裡 tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; // 使當前程序有關機許可權 AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0); if( GetLastError()!=ERROR_SUCCESS ) return FALSE; // 關閉系統,強制所有應用關閉 if( !ExitWindowsEx( EWX_SHUTDOWN|EWX_FORCE, 0 ) ) return FALSE; return 0; }
1、獲取本程序可以修改(調整)許可權的令牌。
2、找到關機許可權值
3、給本程序增加關機許可權