如何反编译.net框架的IL代码

时间:2019-09-21 10:39:38

标签: c# .net decompiling cil ildasm

我想研究大多数.net框架库类的IL代码。可能吗?我正在尝试反编译一些dll(例如:System.Treading),我只看到函数的签名。然后,我转到mscorlib.dll,仅看到清单。有办法查看真实代码吗?

3 个答案:

答案 0 :(得分:2)

您可以使用.NET Reflector(商用,但非常好):

https://www.red-gate.com/products/dotnet-development/reflector/

您可以使用它打开.net程序集(.exe或.dll)。

因此,您还可以通过选择框架版本直接浏览.NET Framework程序集。

选择视图IL或其他语言(例如C#或VB代码)即可。

例如,还有一个免费工具(慢,很慢):

https://www.jetbrains.com/decompiler/

答案 1 :(得分:2)

如果要研究.Net类的实现。我建议您使用Microsoft提供的参考代码。

使用参考代码的主要优点是,您可以看到不会添加到IL中的注释和其他元素(例如#define)。

Reference Source

要研究某些C#构造对生成的IL的影响,我建议使用SharpLib。

SharpLib

答案 2 :(得分:1)

我一直使用ILspy来反编译IL代码,它是轻量级的工具,易于使用。

您可以在下面的链接中找到它:

https://sourceforge.net/projects/ilspyportable/

最好的问候。