Reflector 使用简介

Reflector 工具 (我以前使用过 Reflector 工具 分析过源代码,不过好久没用),以下是整个解决过程:

  1. 打开 Reflector 工具 并且下载了一个FileDisassembler插件, FileDisassembler 插件用于输出程序 集的反编译结果到文件中。打开 Reflector 工具 ,并导入 FileDisassembler 插件。导入好后加载程序 集将反编译结果输出到指定的文件夹中;

 

Reflector 下载地址: http://www.aisto.com/roeder/dotnet 下载时必须输入用户名和 Email 地址,用户名中必须有空格;

FileDisassembler 插件的下载地址: http://www.denisbauer.com/

 

  1. 使用 VS.NET 新建一个项目,根据文件夹结构新建相应的文件夹,导入所有的源文件和资源文件。使用 FileDisassembler 导出的资源文件为全名称,在实际的项目中必须根据 namespace 更改资源文件名且必须将“生成操作”更改为“嵌入的资源”,可以使用 ILDASM 查看 metadata 来决定资源文件名及所在的文件夹,编译并更改一些错误;

 

  1. 当编译好后,找到所有与 COM 有关的内容将其注释掉(因为以前使用过 CCW/RCW 技术),并做相应的更改,每更改一个 class 后,编译一次,直到去掉其相关引用为止;

 

  1. 更改完成后,需要对其进行重构,主要重构以下方面:
  • Rename ,因为 Reflector 工具 反编译时其变量名会根据类型来命名,如 text1,text2,num1 等;
  • 去掉 goto 语句,如果代码中有 swtich 语句时, Reflector 工具 会使用 goto 语句,严重影响程序 逻辑其可读性;
  • Extract Method ,将过于长的 method 执行分解操作;

 

当重构完成后,应用到项目中,并更改相应的 Register 语句, test , run ,结果是 successful ,从而也在最短的时间内完成

 

 

 

 

 

 

 

 

最近由于需要反编译一些C#写的程序 ,早就听说功能极为强大的反编译工具 ,Reflector。
      我用的版本是4.1.84.0,感觉用起来很爽,以后弄到的几个很好用的DLL,我都反编译,并弄出源码 了,为我省了不少工夫啊,反编译出来的除了定义的变量名不一样外,其余的简直是一模一样。
围绕它开发的插件也很多,用着真是开心!我还找到一个插件可以把源码 导出到文件!更是爽!不过这个软件还不支持Unicode ,需要自己写一个转化程序 ,两个搭配起来用极爽!
     有兴趣的朋友也下载一个玩玩吧~ 哈哈! 由于使用过于简单,就不介绍软件使用了~
     下载地址
    http://www.aisto.com/roeder/dotnet/Download.aspx?File=Reflector

另外再提供一些Reflector的相关插件下载,enjoy!!!!

Reflector.FileDisassembler
This add-in can be used to dump the disassembler output to files for any Reflector supported language.
Website Download

 

Reflector.CodeMetrics
Analyses .NET assemblies and shows design quality metrics. The menu item is registered under the "Tools" menu.
Website Download

 

Reflector.SQL2005Browser
This add-in allows to browse .NET assemblies stored in SQL Server 2005 (Yukon) databases.
Website Download

 

Reflector.DelphiLanguage
The Delphi view that is used inside .NET Reflector provided as a language add-in.
Website Download

 

Reflector.McppLanguage
This add-in extends Reflector with a Managed C++ language rendering module.
Website Download

 

Reflector.ChromeLanguage
This add-in extends Reflector with a Chrome language rendering module.
Website Download

 

Reflector.Diff
This add-in shows differences between two versions of the same assembly.
Website Download

 

Reflector.VisualStudio
This program is hosting .NET Reflector inside the Visual Studio 2003 IDE. Run Reflector.VisualStudio.exe to register the add-in with Visual Studio.
Website Download

 

Reflector.ClassView
Shows class definitions as plain text with color coding. The menu item is registered under the "Tools" menu.
Website Download

 

Reflector.CodeModelView
This add-in shows the underlying code model objects for a selected node in .NET Reflector. The menu item is registered under the "Tools" menu.
Website Download

 

Reflector.FileGenerator
This add-in can be used to dump the disassembler output to files for any Reflector supported language.
Download

 

Reflector.Graph
This add-in draws assembly dependency graphs and IL graphs.
Website Download

 

Reflector.OpenRunningAssembly
Opens an assembly or dependency from a process running on the system. The menu item is registered under the "Tools" menu.
Website Download


插件FileGenerator 使用方法:
最开始下载了FileGenerator插件不知如何使用,后来经过摸索,还是学会使用了,所以拿来和大家分享。

FileGenerator插件的作用是:根据dll文件,把里面的源文件导出成文件,导出来的文件除了没有注释,变量名也变了,其它的可谓是没有 差别。对于一些比较好的控件 ,如果不是开源的,完全可以导出成文件,然后自己加上注释,少许修改,很好的利用起来。(不开源的dll,用起来也不放心啊)

先根据上面的地址下载FileGenerator并解压缩,然后运行Reflector.exe,然后点击View->Add- Ins...,弹出一个窗口,然后点击Add->选择FileGenerator里面的唯一一个dll文件: "FileGenerator.dll",点击close.
然后回到Reflector窗口,Tool->Generator File(s)... 右边就出现了插件的窗口,选中左边的dll文件,点击右边的导出文件,源代码就全部导出来了,真是爽啊!

Reflector是一款比较强大的反编译工具,相信很多朋友都用过它,但reflector本身有很多局限性,比如只能一个一个的查看方法等,但幸好reflector支持插件功能目前网上有很多reflector的插件,本人找取了两个应用范围很广,并且广受好评的插件:Reflector.FileDisassembler和Reflector.FileGenerator和Reflector进行了整合,放在了一个压缩包中,大家可以直接解压缩后就开始使用,其中FileGenerator在网上没有现成dll,本人编译后将其取出,放在了压缩包中,一直在苦苦找寻的朋友这次可以拿来直接用了:) 本压缩包中Reflector.exe已经升级为最新的5.0版本,具体的使用方法不多说了,只简单介绍一下本压缩包的使用步骤: 先下载本压缩包并解压缩,运行其中的Reflector.exe(主程序),初次运行会弹出错误提示对话框,因为引用的两个插件DLL是按照我本地实际情况配置的,所以你还需要根据你的实际情况来从新配置一下,方法很简单,我们拿引用FileGenerator.dll来做一个范例, 首先介绍一下Filegenerator,FileGenerator插件的作用是:根据dll文件,把里面的源文件导出成文件,导出来的文件除了没有注释,变量名也变了,其它的可谓是没有差别。对于一些比较好的控件,如果不是开源的,完全可以导出成文件,然后自己加上注释,少许修改,很好的利用起来。(不开源的dll,用起来也不放心啊) 具体的初始化设置方法:点击View->Add-Ins...,弹出一个窗口,然后点击Add->选择文件夹里面的:"FileGenerator.dll",点击close. 然后回到Reflector窗口,Tool->Generator File(s)... 右边就出现了插件的窗口,选中左边的dll文件,点击右边的导出文件,源代码就全部导出来了! 另一个插件Reflector.FileDisassembler.dll设置方法也和这个一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值