VirtualAllocEx throws ERROR_INVALID_HANDLE

VirtualAllocEx throws ERROR_INVALID_HANDLE

本文关键字:INVALID HANDLE ERROR throws VirtualAllocEx      更新时间:2023-10-16

OpenProcess不返回NULL,而是返回看似有效的句柄。我正在运行SE_DEBUG_PRIVILEGE启用,因此访问级别应该没问题。有什么帮助吗?

void* processHandle = OpenProcess(PROCESS_ALL_ACCESS, false, processID);
printf("%pn", processHandle);
void* DLLPATH = VirtualAllocEx(processHandle, 0, (strlen(dllPATH) + 2), MEM_COMMIT, PAGE_READWRITE);
printf("%pn", DLLPATH);

这一切看起来都很好,但VirtualAllocEx抛出了一个无效的句柄错误。有什么帮助小伙子吗?为回应干杯!

编辑:我调试了我正在研究的程序,发现它试图关闭我创建的类似于反作弊的句柄。这就是导致无效句柄错误的原因(据我所知(。

会话0 隔离。这是一项服务,实际上不允许从交互式会话访问会话 0 中的进程,反之亦然。

干净的方式?将其从服务上下文中剥离出来,或者自己从服务上下文中进行调试。

丑陋的方式?使用您的调试权限打开winlogon.exe,读取其安全令牌并模拟它。该进程具有一些未记录的隐藏权限,允许它忽略会话 0 隔离。