我们可能都会(迟早)使用参数来定义我们的应用程序应该如何启动或向其添加更多信息。您可以像这样在 cmd 中使用lpParameters/lpCommandLine
,ShellExecute(ex)/CreateProcess
甚至可以在直接调用中使用它MyApplication.exe -parameter1 -parameter2 -n
。
有时会与出于不同目的使用相同参数名称的应用程序发生冲突,或者现在您甚至可以看到哪些参数已用于某个应用程序。我想知道是否可以在应用程序实际启动之前使用不同的方法向我的应用程序添加更多信息(如参数)。我对 PE 系统了解不多(还),但我想知道是否可以使用CreateProcess
API 并启动暂停的应用程序 - 写入/更改/修改(使用WriteProcessMemory
)一个常量(或 var)的偏移量我已经在我的源代码(或类似的东西......)中声明并最终恢复它。
我确信这是可能的,但它带有一些问题,例如:
- 如何/在哪里可以从 PE 文件中获取常量的偏移量?
- 如果文件被打包/加密会发生什么?
- 还有很多
所以最后一个问题是——参数的替代方案是什么?(也许是基于我的想法?!)