作为子进程启动进程以进行服务

时间:2016-03-21 16:45:48

标签: c++ winapi

我已处理服务并处理进程。是否可以将此过程作为子进程重新启动以进行服务?如果是,我该怎么办?

这个服务和进程都是由其他应用程序创建的,在这里我正在处理这些。

获得服务处理:

schService = OpenService(schSCManager, ServiceName, SERVICE_CHANGE_CONFIG);

掌握流程:

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

我想停止并hprocess作为schservice的孩子。

1 个答案:

答案 0 :(得分:0)

  

是否可以将此流程作为子流程重新启动以进行服务?

如果有的话,不容易。您必须查询最初生成它的命令行的进程,然后将代码注入正在运行的服务进程,以使用CreateProcess()CreateProcessAsUser()启动该相同命令行的新副本。当然,如果服务运行的更高完整性/安全级别比您的注入器运行更高,那么您将无法将代码注入其中。

  

我想停止并hprocess作为schservice的孩子。

为什么呢?这样做没有任何实际好处。除非您试图绕过操作系统的安全性,以使该进程以比其已经运行的更高的完整性/安全级别运行。如果操作系统允许,那将是一个非常危险的安全漏洞。