我们可能都使用(迟早)参数来定义应用程序应该如何启动或为其添加更多信息。您可以在lpParameters/lpCommandLine
中使用ShellExecute(ex)/CreateProcess
,也可以在cmd中直接调用MyApplication.exe -parameter1 -parameter2 -n
。
有时与为不同目的使用相同参数名称的应用程序存在冲突,或者现在您甚至可以看到哪些参数已用于应用程序。我想知道是否可以使用不同的方法来实现如何在我的应用程序实际启动之前添加更多信息(如参数)。我还不太了解PE系统(但是),但我想知道是否可以使用CreateProcess
API并启动应用程序暂停 - 写入/更改/修改(使用{{1} })我在源代码中声明的常量(或var)的偏移量(或类似的东西......),最后恢复它。
我确信这是可能的,但它带有一些问题,如:
所以最后的问题是 - 什么是参数的替代品? (也许基于我的想法?!)
答案 0 :(得分:2)
还有其他方法可以在数据开始运行时将数据传递给新进程,而无需事先对其内存进行黑客攻击。
How do I pass a lot of data to a process when it starts up?
Undocumented and hard-to-find information regarding the CreateProcess API call(向下滚动到“将任意数据传递给子流程!”部分)