关于程序的执行权限
我用vs写了个程序直接运行实现了我的要求(win7中,vs用了管理员权限,不用的话不行),程序中也有用来提升权限的代码EnableDebugPriv()
但我直接运行生成的exe程序却没实现程序的功能,我试过生成release,加上管理员权限,还是不行。这是哪里出了问题?求指点,这是为什么啊!!!
------解决方案--------------------显然代码有问题
void EnableDebugPriv()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
BOOL fOk = FALSE;
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid.HighPart=0;
tkp.Privileges[0].Luid.LowPart = 20;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,0,&tkp,0,NULL,NULL);
int t = GetLastError();
CloseHandle(hToken);
}
------解决方案--------------------ntdll.dll不需要LoadLibrary和FreeLibrary,直接用GetModuleHandle得到基地址