如何反编译/编译dll文件?

时间:2010-08-19 18:52:31

标签: c# .net dll

我有一个用C#编写的应用程序。它已经编译完毕。

那里有很多dll文件,我无法打开它们,反编译它们无法查看和访问构建它们的C#代码,当我在Visual Studio中添加对dll文件的引用时我只能看到有哪些方法,但是我无法查看/访问这些方法的代码。

是否有工具或有办法如何查看/访问该代码,修改它然后重新编译它?

如果您有任何想法请帮帮忙!

由于

1 个答案:

答案 0 :(得分:6)

最简单的方法是通过Reflector - 它并不完美,但会给你一个好主意。

它允许选择一个程序集并在IL,vb.net或C#中显示它。您可以将结果复制/粘贴到Visual Studio中,然后根据您的更改进行编译。

因为它适用于原始优化的IL,所以foreach循环之类的东西最终可能会成为标签,而gotos和变量名称最终可能会成为无效的C#/ vb.net变量名称(尽管它们是有效的IL)。

我过去曾经使用它,最大的问题是重建foreach循环,尽管在其中几个循环后模式变得明显,变量名称可以通过搜索/替换来更改。