强大的.NET反编译工具Reflector及插件 转自冷枫

来源:互联网 发布:爱古兰手机版中阿软件 编辑:程序博客网 时间:2024/04/20 09:26
刚接触.net 时就听说 Reflector这个强大反编译工具呢,只是一直没有去使用他. 今天update跟我说Reflector如何,如何有用,用的如何,如何爽,还得意的说反编译了不少DLL...本来本人对新鲜事就非常有兴趣,听他这么一说.决定试一试这个传说中的工具.
我用的版本是4.1.84.0,以,把自己编写DLL反编译了一下,反编译后的代码除了变量名不同外,其它基本上是一至的,我把反编译后的代码导到相关的文件里(要用到插件),再用vs.net编译,全部通过,真是爽呀.围绕Reflecto开发的插件也很非常多,在网搜索了一下基本到是下面这些,网上关于这些组件的用法和介绍也如出一辄,我想这就样就是网络共享的结果吧以下的组件其中Reflector.OpenRunningAssembly    Reflector.CodeModelView    Reflector.ClassView 我找过很多网站,都无法下载到,如果有那位朋友有,希望能给我了一份.
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.exe,直接双击它,就可以运行呢,界面如下.
 
点击file->open  选择需要反编译的DLL,打开后控件的命名空间会出现在左边的列表中,如上面的dataaccesscommon.点需要反编的类如下面
 
在右边会出现该类的代码如下图:

        
看到了吧,反编译后的代码和原代码基本上没有什么区别. Reflector本身没有将代码导入到文件功能,需要用到相关插件.下面介绍一个插件用法及用途.
 
(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)      选择需要导出的类再选择toolsà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
 
我这里只介绍了五个插件的应用.有什么说的不对的,大家可以指出. 不过Reflector对那些防反编译的好像就没有办法,仅仅使用这个工具是不行的,还需要更扎实的计算机基础知识.