【windows权限】提权操作
概述:一个简单的windows提权代码
提权逻辑
- 打开相应的进程获取 token
 - 获取目标进程的权限
 - 使用 
AdjustTokenPrivileges将 token 提升到目标进程权限。 
代码
int EnablePrivilege_(LPCTSTR lpszPrivilegeName, BOOL bEnable)
{
	int result = FALSE;
	int ret_code = FALSE;
	HANDLE token = NULL;
	TOKEN_PRIVILEGES tkp = { 0 };
	do
	{
		ret_code = ::OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token);
		if (!ret_code)
			break;
		ret_code = ::LookupPrivilegeValue(NULL, lpszPrivilegeName, &tkp.Privileges[0].Luid);
		if (!ret_code)
			break;
		tkp.PrivilegeCount = 1;
		tkp.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
		ret_code = ::AdjustTokenPrivileges(token, FALSE, &tkp, sizeof(tkp), NULL, NULL);
		if (!ret_code)
			break;
		result = TRUE;
	} while (FALSE);
	if (token != NULL)
	{
		CloseHandle(token);
	}
	return result;
}