加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:11:34 所属栏目:百科 来源:网络整理
导读:我希望用户从我的网站下载exe,其中(同步下载时)将一个 XML文件注入到该应用程序中.此 XML文件包含公钥和签名. 如何在下载之前注入文件并在执行期间稍后引用它? 理想情况下,我不会使用shell来注入文件,而是使用本机.NET API. 解决方法 你可以轻松地使用 Mono
我希望用户从我的网站下载exe,其中(同步下载时)将一个 XML文件注入到该应用程序中.此 XML文件包含公钥和签名.

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

理想情况下,我不会使用shell来注入文件,而是使用本机.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文件注入signature.xml资源,并使用您用于签署Application.exe的keypair.snk重新签名程序集.

在运行时,您只需使用:

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

检索资源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读