Reflector:.NET反编译工具及导出CS文件插件

早就听说 Reflector这个强大反编译工具,可是一直没有去用,这段时间由于想了解一个项目,项目采用多层架构,而且又不开源,因此想到了Reflector,下来一试,真是强大啊!!!
截图如下:


    使用方法比较简单:选择file->open 后再选择需要反编译的DLL,打开后控件的命名空间会出现在左边的,展开后右键点击要查看的类选择Disassemble,代码即可出现。下面是一些网上流行的Reflector插件:

Reflector.FileDisassembler
Reflector.CodeMetrics 
Reflector.SQL2005Browser
Reflector.DelphiLanguage 
Reflector.McppLanguage 
Reflector.ChromeLanguage 
Reflector.Diff 
Reflector.VisualStudio 
Reflector.ClassView 
Reflector.CodeModelView 
Reflector.FileGenerator 
Reflector.Graph 
Reflector.OpenRunningAssembly
==============================================
    大家可以到Reflector官方网站(http://www.aisto.com/roeder/dotnet/)下载最新版本下载后解压就可以运行,反编译后的代码和原代码基本上没有什么区别. Reflector本身没有将代码导入到文件功能,需要用到相关插件.下面介绍一个插件用法及用途(Reflector.FileDisassembler.dll).
    (1) Reflector.FileDisassembler和Reflector.FileGenerator这两个插件的用的用途都是一样的,将反编译后的代码导出到相关文件,我这里只介绍Reflector.FileDisassemble的用法,Reflector.FileGenerator用法类似Reflector.FileDisassemble
下截地址: http://www.denisbauer.com/Download.aspx?File=Reflector.FileDisassembler.zip
    (a) 启动Reflector,点击view---add-ins….. 选择Reflector.FileDisassembler.dll (下载Reflector. FileDisassembler解压后有这个文件)添加成功后,在tools菜单中会有file disassembler选项.
    (b) 选择需要导出的类再选择tool——file disassembler 设置导出。
    (c) 在文本框中,输入导出文件的目录,然后点击genrate生成文件.
    (2) Reflector.VisualStudio插件,将Reflector工具嵌入到vs.net里.下载Reflector.VisualStudio后,将解压后的文件和Reflector.exe放在一起,点击Reflector.VisualStudio.exe,即可导入.这时我们运行vs.net,可以通过菜单栏里的"外部程序- Reflector"运行Reflector.
下截地址: http://www.testdriven.net/downloads/ReflectorVsAddin.zip
    (3) Reflector.SQL2005Browser 添加方法同(1)该插件用来查看SQL Server 2005 (Yukon) database中的存储集合.
下截地址: http://www.denisbauer.com/Download.aspx?File=Reflector.SQL2005Browser.zip
    (4)  Reflector.CodeMetrics插件,添加方法同(1)该插件用来分析.net assemblies 和显示该组件的性能参数
下截地址: http://projectdistributor.net/GetFile.aspx?type=b&id=55
    (5) Reflector.Graph插件添加方法同(1)该插件用来绘制集合的结构图.
下截地址: http://projectdistributor.net/GetFile.aspx?type=b&id=56

 

本文引用地址:http://blog.sina.com.cn/s/blog_4cf7ee9c0100b1d6.html

转载于:https://www.cnblogs.com/neil-zhao/articles/1387621.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NET程序员的开发利器.NET Reflector 一、 简介   程序集,作为.NET时代的动态链接库,蕴藏了太多的软件秘密。为此,Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序集信息,而且是免费的工具。   如今,在Visual Studio.NET编译源代码(无论是VB还是C#)时,编译器都会将高级源代码翻译成MSIL,即“微软中间语言”,而不是特定的机器指令。具有更多安全性、版本控制、共享能力与其它相关元数据的中间语言(IL),是包在一个或多个DLL或可执行文件中的。   基于ILDASM检查程序集中的IL有时很有用,但它要求我们熟悉MSIL。通常,比起IL,大多数开发人员对像C#或Visual Basic这样的高级程序设计语言更为熟悉。   Reflector的出现使.NET程序员眼前豁然开朗,因为这个免费工具可以将.NET程序集中的中间语言编译成C#或者Visual Basic代码。除了能将IL转换为C#或Visual Basic以外,Reflector还能够提供程序集中类及其成员的概要信息、提供查看程序集中IL的能力以及提供对第三方件的支持。   二、 下载与运行Reflector   Reflector是由微软员工Lutz Roeder编写的免费程序。这个软件经常更新,你可以在http://www.aisto.com/roeder/dotnet下载最新的版本。在本文成文之时,Reflector的最新版本为5.0.35.0,仅有1M大小。只要双击下载后的Reflector.exe文件即可运行Reflector。   默认情况下,Reflector会打开一组公共程序集(mscorlib、System、System.Data、System.Drawing等等)。每个打开的程序集都列在Reflector的主窗口中。单击程序集旁边的+图标可以展开树结构并展示程序集的命名空间。每个命名空间旁边都有一个相关的+图标,单击这个图标将显示这个命名空间内的类。除此以外,还可以展开每个类,显示类的成员:事件、字段、方法与属性。   要想查看其它程序集(包括我们自己创建的程序集)的细节,你可以使用菜单命令“File→Open”。然后,浏览到想要查看的程序集。只要选择了有效的.NET程序集,这个程序集就可以在Reflector的主窗口中与其它默认程序集共同显示。要想从Reflector的主窗口中删除程序集,只需右击程序集并选择“Close”。   三、 使用Reflector汇编程序集   提供基本的程序集是Reflector唾手可得的功能,然而,Reflector真正的威力体现在它的汇编能力。只要浏览到类级的成员,就可以通过Tools菜单中的Disassembler项(或在该项上单击右键)汇编此成员。这将打开第二个窗格,以C#、Visual Basic、Delphi或者IL显示汇编后的内容。图2以C#语言展示了对SmtpClient类中Abort方法的汇编结果。   有了Reflector编译功能,要研究.NET框架基类库就容易多了。我们完全可以在没有源代码的情况下研究我们所创建或者正在使用的程序集相应源代码。   不用太担心,你自己的.NET应用程序还有其它受保护措施。但是,想阻止别人查看.NET程序集的IL(继而编译成C#或者Visual Basic)是不可能的,但你可以使用“混淆”技术使IL变得混乱。目前,市场上有许多.NET混淆产品,比如:PreEmptive Solution的Dotfuscator、WiseOwl的Dmeanor以及Remotesoft的.NET Obfuscator等。   四、 Reflecator的其它功能   除了作为对象浏览器与汇编器之外,Reflector还可以显示类与其成员的调用与被调用图、提供单键访问Google或MSDN搜索的能力并提供了允许第三方开发人员为Reflector创建件的框架。   要查看调用或被调用图,只需要在树视图中选择一个成员,访问Tools菜单,选择Call Graph或Callee Graph选项即可。Call Graph会列出所选项所调用的成员,而Callee Graph列出调用所选项的成员。   通过使用件,Reflector的功能可以得到进一步扩展。目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的汇编内容以及在Visual Studio中作为Reflector的宿主等的件。还有更多件都列在http://www.codeplex.com/reflectoraddins中。在此,我极力推荐有兴趣的读者前去一看。   不出乎所料,的确存在一个Reflector.VisualStudio件。有了这个件,就可以让Reflector集成在Visual Studio环境中,进而取代以前那个有些“拙漏”的对象浏览器。   首先,我们需要在机器上准备Reflector的最新版,然后从http://www.testdriven.NET/reflector下载最新版本的Reflector.VisualStudio件。据说安装了此件之后,Reflector能够与Visual Studio完美融合。但遗憾的是,本人试下载此软件并安装(仅能得到TestDriven.NET-2.8.2130 RTM个人测试版本,时间7/30/2007,大小3.3M)后,没有大发现—仅是在VS2005中添加“Go to Reflector”和一个帮助菜单项。点击“Go to Reflector”菜单项仅是从VS2005内部启动Reflector而已。   有了Reflector.VisualStudio件(正版,下面是根据在线资料介绍),Reflector可以寄在Visual Studio中Reflector不仅是一个对象浏览器、汇编器,包裹在同一个程序中的所有功能还可以寄于Visual Studio中。   五、 小结   还记得Spy++吗?在Win32时代,这个软件对于我们分析一个陌生软件的设计思路可谓立下汗马功劳。在如今的.NET时代,Reflector又成为每个严肃的.NET开发人员工具箱中必不可少的精髓工具之一。怎么样,请赶紧试锋吧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值