我正在尝试收集服务及其DLL的列表。
从python中,我得到了psutil.win_service_iter()的服务列表:
import psutil
services = psutil.win_service_iter()
print(services[0].as_dict()["binpath"])
但是,当我遍历svchost.exe或dllhost.exe进程中托管的服务时,我仅获得命令行以从binpath启动svchost.exe或dllhost.exe。例如:
C:\Windows\system32\svchost.exe -k LocalService -p
我知道我可以使用Process Explorer查看DLL,但我正在寻找一种方法来用Python编程地执行此操作。
编辑:我知道如何查看所有加载的DLL,但是我只想要主DLL,其中包含ServiceMain()函数。与Process Explorer相同:
您完全可以通过Python子进程调用来完成。
https://docs.python.org/3/library/subprocess.htmlhttps://www.cyberciti.biz/faq/python-run-external-command-and-get-output/
在Windows的命令提示符中,您将键入“ tasklist / SVC | findstr LocalService”。随后,您可以执行类似于以下内容的Python调用:
#!/usr/bin/python
import subprocess
subprocess.call(["tasklist", "/SVC", "| findstr LocalService"])