2016-03-21 47 views
-2

我已经处理到服务和处理的过程。是否有可能重新启动此过程作为子进程来服务?如果是,我该怎么办?启动过程,子进程服务

无论这种服务和流程是由其他应用程序创建的,在这里我得到处理对这些。服务

获取手柄:

schService = OpenService(schSCManager, ServiceName, SERVICE_CHANGE_CONFIG); 

获取句柄过程:

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

我想停下来,开始hprocess作为孩子schservice

+0

告诉我们你试过的东西 – lmiguelmh

+0

Windows并没有真正具有在* nix中找到的父/子进程的概念。父母只是调用'CreateProcess'的过程,父母可以非常高兴地终止离开孩子继续而没有父母。如果您有两个进程的句柄,那么这些进程已经存在。你真正的问题是什么?你为什么要问? –

+0

'OpenService()'不返回正在运行的服务进程的句柄。 –

回答

0

是否有可能重新启动这一进程的子进程服务?

不容易,如果在所有。你将不得不查询命令行最初催生了它的进程,然后将代码插入到正在运行的服务进程来启动使用CreateProcess()CreateProcessAsUser()是相同的命令行的新副本。当然,如果服务运行在比您的注入器运行更高的完整性/安全级别上,您将无法向其中注入代码。

我想停下来开始hprocess作为schservice的子女。

为什么?这样做并没有真正的好处。除非您试图规避操作系统的安全性,以使该进程在比已经运行的更高完整性/安全级别运行。如果操作系统允许,这将是一个非常危险的安全漏洞。

相关问题