以编程方式修改元数据(.net可执行文件)

时间:2014-09-03 12:05:35

标签: c# .net metadata il roslyn

我希望我的应用程序能够修改.net可执行文件的元数据。是否有.net类来执行此操作,还是必须解析可执行文件? (罗斯林可以在这里有任何帮助吗?)

如果我需要解析exe - 它的格式是什么?我搜索过,但只提出了this Wikipedia entry

2 个答案:

答案 0 :(得分:2)

没有允许您重写IL的.NET类。

您必须在使用Mono.Cecil或阅读CLR via C#之间进行选择,然后编写自己的IL重写器。 (在技术上可行,毕竟JB Evain几乎完全由他自己写了Mono.Cecil。)

Mono.Cecil的源代码在Github完整提供。

Mono.Cecil的基础知识可能会在its wiki中找到。

答案 1 :(得分:1)

  

如果我需要解析exe - 它的格式是什么?

格式在ECMA 335中指定,其中描述了Common Language Infrastructure。但它超过400页,你不想自己为所有这些实现读者/作者。如果你真的这样做,你应该从the section that describes the file header (§II.25)开始。