强大的.NET反编译工具Reflector及插件 (转)
刚接触.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.
(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 和显示该组件的性能参数
(5) Reflector.Graph插件添加方法同(1)该插件用来绘制集合的结构图.
我这里只介绍了五个插件的应用.有什么说的不对的,大家可以指出. 不过Reflector对那些防反编译的好像就没有办法,仅仅使作这个工具是不行的,还需要更扎实的计算机基础知识.
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1358635