以编程方式修改.NET可执行文件的元数据。

3
我希望我的应用程序能够修改 .net 可执行文件的元数据。是否有 .net 类可实现此功能,还是必须解析可执行文件?(Roslyn 是否能提供帮助?)
如果需要解析 exe 文件 - 它的格式是什么?我搜索了一下,但只找到了 this Wikipedia entry

看一下Mono/Xamarin。他们有一个库,允许您修改IL可执行文件,包括以编程方式更改代码本身。 - Luaan
@Luaan 谢谢。但我真的更喜欢没有第三方代码。这就是为什么我写了 .net class 的原因。 - ispiro
2
没有内置的方法。使用Mono.Cecil。如果你不喜欢它,就自己编写吧。 - Sriram Sakthivel
3
我个人认为关闭投票有点严厉。这个问题肯定适合在SO上讨论,当一个人不确定从何处开始时,你不能责怪他过于宽泛。这是今天较为有趣的问题之一。 - slugster
你介意我问一下为什么不能依赖第三方吗?我曾经成功地使用过Mono.Cecil。它非常有用,而自己尝试实现它则是一场噩梦。还要引用那句话,“不要重新发明轮子”。 - Sriram Sakthivel
显示剩余9条评论
2个回答

2

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

你必须选择使用Mono.Cecil或阅读CLR via C#,然后编写自己的IL重写器。(从技术上讲,JB Evain几乎完全独自编写了Mono.Cecil)。

Mono.Cecil的源代码可以在Github上完整获取。

关于Mono.Cecil使用的基础知识可以在其维基中找到。


1

非常感谢。这看起来非常有帮助。 - ispiro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接