您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 读取另一个进程的命令行参数(Win32 C代码)

5b51 2022/1/14 8:23:14 python 字数 4302 阅读 585 来源 www.jb51.cc/python

我需要能够列出传递给其他正在运行的进程的命令行参数(如果有的话).我已经在系统上运行了进程的PID,所以基本上我需要确定传递给给定PID XXX的参数. 我正在研究一个Python module for managing processes的核心部分.代码在C中被编写为Python扩展,并将被更高级的Python库包装.该项目的目标是避免依赖于第三方库,如pywin32扩展,或者在命令行上调用’p

概述

我正在研究一个Python module for managing processes的核心部分.代码在C中被编写为Python扩展,并将被更高级的Python库包装.该项目的目标是避免依赖于第三方库,如pywin32扩展,或者在命令行上调用’ps’或taskkill等丑陋的攻击,所以我正在寻找一种在C代码中执行此操作的方法.

我已经Google Googled,并发现一些简单的建议,使用CreateRemoteThread()注入到另一个进程,然后运行GetCommandLine(),但我希望有人可能有一些工作代码示例和/或更好的建议.

更新:我发现完整的演示代码解决方案使用NtQueryProcessInformation在CodeProject:http://www.codeproject.com/KB/threads/GetNtProcessInfo.aspx – 这是不理想的,因为“不支持”直接从NTDLL结构剔除信息,但我会生活在它.感谢所有的建议.

更新2:我通过更多的Google搜索来挖掘不使用C代码的C版本,并且更直接/简洁地指向这个问题.详见http://wj32.wordpress.com/2009/01/24/howto-get-the-command-line-of-processes/.

谢谢!

http://www.codeproject.com/KB/threads/GetNtProcessInfo.aspx

@Reuben已经指出,您可以使用NtQueryProcessInformation检索这些信息.不幸的是,这不是一个推荐的方法,但鉴于只有其他解决方案似乎是引起WMI查询的开销,我想我们现在将采用这种方法.

请注意,如果使用从64位Windows操作系统上的32位Windows编译的代码,这似乎不起作用,但是由于我们的模块是从目标的源编译出来的,为了我们的目的应该是可行的.我宁愿使用这个现有的代码,应该在Windows 7或更高的日期中断,我们可以再次看一下使用WMI.感谢您的回应!

更新:一个更简洁和C(相对于C)相同技术的版本如下所示:

http://wj32.wordpress.com/2009/01/24/howto-get-the-command-line-of-processes/

总结

以上是编程之家为你收集整理的python – 读取另一个进程的命令行参数(Win32 C代码)全部内容,希望文章能够帮你解决python – 读取另一个进程的命令行参数(Win32 C代码)所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶