繁体   English   中英

查找启动过程的命令行选项

[英]Finding the command line options a process was launched with

我正在尝试找出方法,目前正在使用CreateToolHelp32SnapShot来获取正在运行的进程的列表,并且已经获得了当前正在运行的可执行文件的FilePath,但是我需要能够找出使用了哪些命令行选项来启动该过程。

我知道这是可能的,因为您可以在Process Explorer上看到它,所以我尝试查找旧Process Explorer的源代码,但是没有运气:(

无法以可靠的方式获取正在运行的进程的命令行。 通过更改存储这些命令的内存,很有可能更改正在运行的进程的命令行。

Raymond Chen最近在此主题上做了一篇不错的文章,详细说明了为什么它不可靠。

检查NtQueryInformationProcessReadProcessMemory win API调用是否可以满足您的需求。 没有简单的示例,因此请在此处检查源代码: 使用NtQueryInformationProcess获取流程信息

获取此数据的另一种方法是通过WMI,如下所示:

SELECT CommandLine FROM Win32_Process WHERE ProcessId = ???

更多信息在这里: Win32_Process类

几乎立即发生的一种可能性是将线程注入目标进程( CreateRemoteThread ),并调用GetCommandLine

IIRC命令行参数存储在过程环境中-如果可以访问它,则也可以读取它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM