我有一个使用CreateProcessAsUser()
创建的流程,并使用以下方法打开了一个新句柄:
HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
此调用成功,我得到了该进程的句柄。当我尝试使用此句柄执行
时VirtualAllocEx(hProcess, pbAddress, cbAlloc, MEM_RESERVE, PAGE_READWRITE)
虽然我正在使用的句柄有PROCESS_ALL_ACCESS
,但ACCESS_DENIED(5)失败了
这也是因为我从调用CreateProcessAsUser
回来的过程句柄失败了
当我使用普通CreateProcess()
创建流程时,它可以正常工作。
什么可能导致这种行为?
我的流程已经SeDebugPrivilege
,所以不是。
我要做的是使用Detours将dll注入新进程。使用普通的CreateProcess,弯路可以正常工作,但是使用CreateProcessAsUser我会失败。