DLL注入提升進程權限(有時還需要注入程序使用管理員權限運行)

void SetToken()
{
	HANDLE hToken;
	if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
	{
		printf("打開進程的訪問令牌失敗\n");
		return;
	}

	LUID luid;
	if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid))
	{
		printf("查看進程相關的特權信息失敗\n");
		CloseHandle(hToken);
		return;
	}

	TOKEN_PRIVILEGES Privileges;
	Privileges.PrivilegeCount = 1;
	Privileges.Privileges[0].Luid = luid;
	Privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
	if (!AdjustTokenPrivileges(hToken, FALSE, &Privileges, sizeof(Privileges), NULL, NULL))
	{
		printf("調整令牌特權失敗\n");
		CloseHandle(hToken);
		return;
	}
	CloseHandle(hToken);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章