gpt4 book ai didi

c# - 如何在运行时将文件注入(inject) EXE 并在程序运行期间引用该文件?

转载 作者:太空狗 更新时间:2023-10-29 21:14:41 25 4
gpt4 key购买 nike

我希望用户从我的网站下载一个 exe,其中(在下载时同步)一个 XML 文件被注入(inject)到这个应用程序中。此 XML 文件包含公钥和签名。

如何在下载之前注入(inject)文件并在稍后执行期间引用它?

理想情况下,我不会使用 shell 来注入(inject)文件,而是使用 native .NET api。

最佳答案

你可以很容易地使用 Mono.Cecil ,你只需要写这样的东西:

var module = ModuleDefinition.ReadModule ("Application.exe");

module.Resources.Add (
new EmbeddedResource (
"signature.xml",
ManifestResourceAttributes.Private,
File.ReadAllBytes ("signature.xml")));

module.Write ("Application.exe",
new WriterParameters {
StrongNameKeyPair = new StrongNameKeyPair ("keypair.snk")
});

从 signature.xml 文件注入(inject) signature.xml 资源,并使用您用于签署 Application.exe 的 key 对.snk 重新签署您的程序集。

在运行时,你只需要使用:

var stream = Assembly.GetExecutingAssembly ()
.GetManifestResourceStream ("signature.xml");

检索资源。

关于c# - 如何在运行时将文件注入(inject) EXE 并在程序运行期间引用该文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5340689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com