bool Rise(BOOL fEnabled)
{
HANDLE handle;
DWORD buffer;
if (!OpenProcessToken(GetCurrentProcess(),/*TOKEN_ADJUST_PRIVILEGES*/TOKEN_ALL_ACCESS ,&handle))//这两个参数都试过
{
return FALSE;
}
TOKEN_PRIVILEGES Otoken, Ntoken;
Otoken.PrivilegeCount = 1;
Otoken.Privileges[0].Attributes = fEnabled ? SE_PRIVILEGE_ENABLED : 0;
if (!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&Otoken.Privileges[0].Luid))
{
return FALSE;
}
if (!AdjustTokenPrivileges(handle,FALSE,&Otoken,sizeof(TOKEN_PRIVILEGES),
&Ntoken,&buffer))
{
return FALSE;
}
CloseHandle(handle);
return TRUE;
}
本人目地:用OpenProcess();打不开该进程及能结束系统提升过权的进程
这个东西我试了N次,都不行,是不是我有什么地方没注意到的,。请高手指点。
在这先给40分,若有满意答案在此决对加分
{
HANDLE handle;
DWORD buffer;
if (!OpenProcessToken(GetCurrentProcess(),/*TOKEN_ADJUST_PRIVILEGES*/TOKEN_ALL_ACCESS ,&handle))//这两个参数都试过
{
return FALSE;
}
TOKEN_PRIVILEGES Otoken, Ntoken;
Otoken.PrivilegeCount = 1;
Otoken.Privileges[0].Attributes = fEnabled ? SE_PRIVILEGE_ENABLED : 0;
if (!LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&Otoken.Privileges[0].Luid))
{
return FALSE;
}
if (!AdjustTokenPrivileges(handle,FALSE,&Otoken,sizeof(TOKEN_PRIVILEGES),
&Ntoken,&buffer))
{
return FALSE;
}
CloseHandle(handle);
return TRUE;
}
本人目地:用OpenProcess();打不开该进程及能结束系统提升过权的进程
这个东西我试了N次,都不行,是不是我有什么地方没注意到的,。请高手指点。
在这先给40分,若有满意答案在此决对加分
如果进程有保护的话(比如Hook OpenProcess)那么即使提权也打不开的