GetCurrentProcessID
OpenProcessToken
LookupPrivilegeValue
AdjustTokenPrivileges
BOOL
BOOL AdjustTokenPrivileges(
);
typedef
}TOKEN_PRIVILEGES,
typedef
}LUID_AND_ATTRIBUTES,
SE_PRIVILEGE_ENABLED
SE_PRIVILEGE_ENABLED_BY_DEFAULT
SE_PRIVILEGE_USED_FOR_ACCESS
要使能一个权限就指定Attributes为SE_PRIVILEGE_ENABLED。第一个参数就是指权限的类型,是一个LUID的值,LUID就是指locally
BOOL LookupPrivilegeValue(
);
#define
#define
#define
#define
这样通过这三个函数的调用,我们就可以用OpenProcess(PROCESS_ALL_ACCESS,FALSE,
/////////////////////////////////////////////以下是本人练习部分/////////////////////////////////////////////////////////////
///////////////////////////////////////////提升权限并关闭计算机//////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include
bool main()
{
HANDLE
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);
TOKEN_PRIVILEGES
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,false,&tkp,0,NULL,0);
ExitWindowsEx(EWX_SHUTDOWN,0L);//这里我以前写错了,现在是对的了
system("pause");
return true;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define SE_CREATE_TOKEN_NAME
#define SE_ASSIGNPRIMARYTOKEN_NAME
#define SE_LOCK_MEMORY_NAME
#define SE_INCREASE_QUOTA_NAME
#define SE_UNSOLICITED_INPUT_NAME
#define SE_MACHINE_ACCOUNT_NAME
#define SE_TCB_NAME
#define SE_SECURITY_NAME
#define SE_TAKE_OWNERSHIP_NAME
#define SE_LOAD_DRIVER_NAME
#define SE_SYSTEM_PROFILE_NAME
#define SE_SYSTEMTIME_NAME
#define SE_PROF_SINGLE_PROCESS_NAME
#define SE_INC_BASE_PRIORITY_NAME
#define SE_CREATE_PAGEFILE_NAME
#define SE_CREATE_PERMANENT_NAME
#define SE_BACKUP_NAME
#define SE_RESTORE_NAME
#define SE_SHUTDOWN_NAME
#define SE_DEBUG_NAME
#define SE_AUDIT_NAME
#define SE_SYSTEM_ENVIRONMENT_NAME
#define SE_CHANGE_NOTIFY_NAME
#define SE_REMOTE_SHUTDOWN_NAME
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////查找并关闭指定窗口的进程//////////////////////////////////////////////////////////////////////////
#include
#include ;
bool main()
{
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////遍历进程表/////////////////////////////////////////////////////////////////////
#include
#include
bool main()
{
}
/////////////////////////////////////////////启动一个应用程序///////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
bool main()
{
}
/////////////////////////////////////////另一种打开应用程序的方法/////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
#include
bool main()
{
}