windows内核编程之手动提升进程权限

#include <iostream>
#include <windows.h>
#include <locale>
using namespace std;
int main()
{
setlocale(LC_ALL, "CHS");
SHELLEXECUTEINFO sei = {sizeof(SHELLEXECUTEINFO)};
sei.lpVerb = L"runas";
sei.lpFile = L"cmd.exe";
sei.nShow = SW_SHOWNORMAL;
if (!ShellExecuteEx(&sei))
{
if (GetLastError() == ERROR_CANCELLED)
cout << "取消" << endl;
else
if (GetLastError() == ERROR_FILE_NOT_FOUND)
cout << "对不起,该文件没有发现" << endl;
}


HANDLE hToken = NULL;
DWORD dwSize;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
{
cout << "OpenProcessToken 失败!" << endl;
system("pause");
return 0;
}
BOOL bResult = FALSE;
TOKEN_ELEVATION_TYPE ElevationType;
if (GetTokenInformation(hToken, TokenElevationType, &ElevationType, sizeof(ElevationType), &dwSize));
{
BYTE adminSID[SECURITY_MAX_SID_SIZE];
dwSize = sizeof(adminSID);
CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, &adminSID, &dwSize);
if (ElevationType == TokenElevationTypeDefault)
cout << "进程以受限的权限运行" << endl;

}







system("pause");
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值