.Net Reflector反编译工具如何将注释显示出来?

.Net Reflector反编译工具如何将注释显示出来?,第1张

Net有两个很好的工具可以反编译NET程序集:Salamander Net Decomplier和ReflectorNet ,Salamander Net Decomplier功能非常强大,可以反编译混淆过的NE代码,也可以直接将程序集中的类反编译成一个文件,但是它是需要money的,试用版提供的功能又非常有限。相对而言呢,Reflectornet 是完全免费的,但是它只能一个方法一个方法的查看,不能将程序集直接反编译成一个文件,这样也比较麻烦,好就好在它支持插件add-in功能。针对它的缺点,很多人开发了很好用的插件,可以将整个程序集的代码反编译成源文件,比如说ReflectorFileDisassembler 、ReflectorFileGenerator 都是很好用的。 另外再提供一些Reflector的相关插件下载,enjoy!!!! 插件FileGenerator 使用方法:最开始下载了FileGenerator插件不知如何使用,后来经过摸索,还是学会使用了,所以拿来和大家分享。 FileGenerator插件的作用是:根据dll文件,把里面的源文件导出成文件,导出来的文件除了没有注释,变量名也变了,其它的可谓是没有 差别。对于一些比较好的控件,如果不是开源的,完全可以导出成文件,然后自己加上注释,少许修改,很好的利用起来。(不开源的dll,用起来也不放心啊) 先根据上面的地址下载FileGenerator并解压缩,然后运行Reflectorexe,然后点击View->Add- Ins,d出一个窗口,然后点击Add->选择FileGenerator里面的唯一一个dll文件: "FileGeneratordll",点击close 然后回到Reflector窗口,Tool->Generator File(s) 右边就出现了插件的窗口,选中左边的dll文件,点击右边的导出文件,源代码就全部导出来了,真是爽啊! 使用NET Reflector插件FileDisassembler还原源码 NET Reflector,它是一个类浏览器和反编译器,可以分析程序集并向您展示它的所有秘密。NET 框架向全世界引入了可用来分析任何基于 NET 的代码(无论它是单个类还是完整的程序集)的反射概念。反射还可以用来检索有关特定程序集中包含的各种类、方法和属性的信息。使用 NET Reflector,您可以浏览程序集的类和方法,可以分析由这些类和方法生成的 Microsoft 中间语言 (MSIL),并且可以反编译这些类和方法并查看 C# 或 Visual Basic NET 中的等价类和方法。 为了演示 NET Reflector 的工作方式,我将加载和分析前面已经显示的 NUnitExample 程序集。下图显示了 NET Reflector 中加载的该程序集。 在 NET Reflector 内部,有各种可用来进一步分析该程序集的工具。要查看构成某个方法的 MSIL,请单击该方法并从菜单中选择 Disassembler。 除了能够查看 MSIL 以外,您还可以通过选择 Tools 菜单下的 Decompiler 来查看该方法的 C# 形式。通过在 Languages 菜单下更改您的选择,您还可以查看该方法被反编译到 Visual Basic NET 或 Delphi 以后的形式。以下为 NET Reflector 生成的代码: public void HashtableAddTest(){ Hashtable hashtable1; hashtable1 = new Hashtable(); hashtable1Add("Key1", "value1"); hashtable1Add("Key2", "value2"); AssertAreEqual("value1", hashtable1["Key1"], "Wrong object returned!"); AssertAreEqual("value2", hashtable1["Key2"], "Wrong object returned!"); } 前面的代码看起来非常像我为该方法实际编写的代码。以下为该程序集中的实际代码: public void HashtableAddTest(){ Hashtable ht = new Hashtable(); htAdd("Key1", "value1"); htAdd("Key2", "value2"); AssertAreEqual("value1", ht["Key1"], "Wrong object returned!"); AssertAreEqual("value2", ht["Key2"], "Wrong object returned!"); } 尽管上述代码中存在一些小的差异,但它们在功能上是完全相同的。 虽然该示例是一种显示实际代码与反编译代码之间对比的好方法,但在我看来,它并不代表 NET Reflector 所具有的最佳用途 — 分析 NET 框架程序集和方法。NET 框架提供了许多执行类似 *** 作的不同方法。例如,如果您需要从 XML 中读取一组数据,则存在多种使用 XmlDocument、XPathNavigator 或 XmlReader 完成该工作的不同方法。通过使用 NET Reflector,您可以查看 Microsoft 在编写数据集的 ReadXml 方法时使用了什么,或者查看他们在从配置文件读取数据时做了哪些工作。NET Reflector 还是一个了解以下最佳实施策略的优秀方法:创建诸如 >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13297736.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-10
下一篇 2023-07-10

发表评论

登录后才能评论

评论列表(0条)

保存