我想知道如何从托管库或可执行文件读取IL,并解析文件中的元数据,类似于Mono.Cecil的工作方式。我这样做的原因是将一些.NET代码移植到Android(以及其他一些平台),而无需为Mono支付惊人的费用。我想知道这些文件中使用的IL代码是否记录在某处。 Mono的解析器似乎非常混乱。我想阅读实际的规范,而不是它的C#实现。
答案 0 :(得分:1)
那里有很多IL反编译器和工具;阅读您想要的任何指令或元数据应该相对容易,并且无论您想要什么,都可以使用它们。
......但是......
这些.Net工具大多数都是用.Net编写的。如果您愿意在Windows工作站上使用任何所需内容(然后将最终输出复制到目标设备),这很好。
至于找到一个实际上在你的Android目标上运行的反编译库或工具......这有点问题:)
无论如何,看看这里:
祝你好运!答案 1 :(得分:0)
我不明白为什么你需要反编译任何东西,难道你没有自己的程序集的源代码?您不需要对它们进行反编译,以便将它们移植到c ++。
如果您尝试反编译您不拥有的.NET程序集,那么这听起来像版权盗窃。
此外,Mono是自由软件。如果您正在编写自由软件(即遵守LGPL许可的条款),您可以在Android上使用vanilla Mono,而不需要商业Mono4Android许可。
换句话说:如果您不遵守自由软件许可的条款,您只需付费(如果您问我,这是非常公平的。)