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

本文关键字:属于 net 可执行文件 元数据 编程 方式 修改 | 更新日期: 2023-09-27 18:20:33

我希望我的应用程序能够修改.net可执行文件的元数据。有.net类可以做到这一点吗?或者我必须解析可执行文件吗?(Roslyn能帮上忙吗?)

如果我需要解析exe-它的格式是什么?我搜索了一下,但只找到了这个维基百科条目。

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

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

您必须在使用Mono.Cecil或通过C#读取CLR,然后编写自己的IL重写器之间做出选择。(这在技术上是可能的,毕竟JB Evain写了Mono。Cecil几乎完全是自己写的)。

Cecil的源代码在Github上有完整的版本。

Mono的基础知识。Cecil的用法可以在它的wiki中找到。

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

该格式在ECMA335中指定,ECMA335描述了公共语言基础结构。但它有400多页,你不想自己实现所有这些的阅读器/写入器。如果你真的这样做了,你可能应该从描述文件头的部分开始(§II.25)。