创建进程挂起和UAC

时间:2014-01-28 01:10:52

标签: c++ windows

我有一个inyector应用程序将远程DLL映射到另一个进程。我尝试插入的进程有自己的清单并需要管理员权限。我正在尝试使用CreateProcess,因为我可以在挂起状态下创建进程,执行映射到远程内存然后恢复它。

现在根据MS,我可以使用带有runas动词的ShellExecute,但这将立即开始运行该过程。是否有任何方法可以请求用户以管理员身份运行流程,同时在挂起状态下创建流程?

1 个答案:

答案 0 :(得分:0)

如果目标可执行文件具有指定requiresAdminstrator的UAC清单,则您不需要执行任何额外操作。只需正常使用CreateProcess(),让操作系统为您处理高程。在CreateProcess()将控制权返还给您之前,高程将应用于新流程。

如果目标可执行文件没有强制提升的UAC清单,则只需手动提升。在这种情况下,如果您不想使用ShellExecute/Ex(),则可以使用CreateProcessElevated()之类的内容。