C#的DLL反编译

Reflector这个强大反编译工具,我用的版本是7.4.1.193。围绕Reflecto开发的插件也很非常多:

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,打开后控件的命名空间会出现在左边的列表中。
反编译后的代码和原代码基本上没有什么区别。

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对那些防反编译的好像就没有办法,仅仅使作这个工具是不行的,还需要更扎实的计算机基础知识.

posted @ 2012-01-31 16:06  ivanway  阅读(6801)  评论(0编辑  收藏  举报