我有程序调用另一个CLI程序,没有任何程序的源代码。 我想知道第一个程序调用命令行程序的参数。
使用Sysinternals Process Explorer我能够找到参数。其中一个是一个奇怪的字符串。好奇,我想知道它起源于何处:它依赖于什么样的变量或者它是否是硬编码的。
该字符串不以ASCII格式存在。所以,我想知道CLI应用程序的调用位置,所以我可以深入挖掘。不幸的是,这是我被卡住的地方。
我对Windows API以及如何创建进程知之甚少。我找不到创建CLI应用程序进程的部分。我尝试使用名为StraceNT的工具,但我无法在任何地方找到调用(我假设它将使用CreateProcess()
函数)。
很抱歉,如果这是一个愚蠢的问题,但它似乎很有趣。欢迎任何有关教育自己的建议阅读。
答案 0 :(得分:0)
您可以使用Process Monitor。如果您只想查看流程创建/终止活动,请添加过滤器Operation
begins with
Process
。然后在创建进程时记录它,包括创建进程的内容。
然后,您可以双击您感兴趣的“处理创建”事件,并查看“堆栈”选项卡。 Voilà,您将获得一个调用堆栈,向您展示如何启动流程创建!
在这里,我从资源管理器开始记事本: