【转载】教你使用 Reflexil 反编译.NET

简介

反编译的方式有不少种,其实最靠谱的仍是IL反编译。 html

若是不懂IL能够尝试我这边文章入门:http://www.wxzzz.com/278.html 工具

不过我下面要说的不是IL这种底层的代码反编译,而是Reflector中的Reflexil插件进行反编 测试

也许有人会说Reflector不就是反编译了么,为何还要用Reflexil这个插件? Reflector 仅仅是反编译出源码给你看,并不能在修改后编译回去。因此咱们须要使用Reflexil这个插件进行反编译回去。 flex

.NET 三种反编译方式

这里顺便介绍下我所知道的三种反编译回去的方式: 插件

  1. 直接修改IL代码(固然,这比较难,须要熟悉IL汇编,可是也是最实用的。也许我会在之后的文章详细阐述)
  2. 使用Reflector进行整个代码项目的导出,而后用VS进行修改后编译(在大型项目中,若是有不少其余的dll引用,也许会让你步履维艰,没法使用VS编译经过,因此大型项目直接用IL汇编反编译关键代码便可)
  3. 使用Reflexil插件进行直接反编译(彷佛这种要比第二种方法要好的多,至少很省事。其实实际使用起来也不是特别的方便,本文会进行一个稍微详细的使用介绍)

Reflexil 安装

在此以前你须要先去下载Reflector和Reflexil插件,这些你能够去百度或谷歌上面下载到。(若是你不会…那下面的文章不用看了) code

下载好以后首先安装Reflector程序,安装完毕后在把Reflexil插件放到Reflector程序目录下面(实际上是个dll文件而已),以下图所示 orm

Reflexil_Install

而后打开Reflector,在工具栏依次点击 Tools -> Add-Ins... ,以下图所示 htm

Reflexil_Install2

而后在弹出的界面中点击+号选择刚刚拷贝到Reflector中的Reflexil插件的dll文件,以下图所示 blog

Reflexil_Install3

而后点击Close ,此时程序的 Tools 栏目下已经有了 Reflexil 插件选项。get

要反编译的示例项目

本文反编译一个Winform程序(固然,你也能够反编译.NET 的其余 dll 文件),程序以下所示:

Reflector Winform

代码

  1. public partial class Form1 : Form
  2. {
  3. public Form1()
  4. {
  5. InitializeComponent();
  6. }
  7. private void btnTest_Click(object sender, EventArgs e)
  8. {
  9. MessageBox.Show("你好");
  10. }
  11. }

咱们把这个exe程序进行反编译吧

开始反编译工做

首先在Reflector工具栏中依次点击 Tools -> Reflexil 打开 Reflexil 的窗口,以下图所示

Open Reflexil

而后打开你要反编译的程序集,咱们编译本身写的Winform的exe程序做为测试吧,以下图所示。

Reflector Winform2

而后咱们选中咱们要反编译的方法,在Reflexil插件中进行反编译,以下图所示。

Reflector Winform3

能够直接在“你好”的那一栏进行点击右键选择 “Edit” 进行直接的编辑

也能够在图中的这个选项卡( Instructions ) 中的表的任意一栏点击右键选择,以下图所示

Reflexil Edit

你能够直接Edit编辑单个文本,也能够Replace all with code... 编辑整个class的内容。

若是你选择的是Replace all with code... 来编辑整个内容的话,你须要在编辑完成后,在界面的左下角点击Complile 作编译操做。

可是彷佛这个插件的编辑整个class的功能有缺陷,有些代码识别不出来。因此仍是看状况使用吧,若是Replace all with code..不行,就直接选 Edit 编辑咱们所选的内容便可。  我这里将“你好” 修改成 “你好,欢迎访问个人博客,www.wxzzz.com”。以下所示

Reflexil Edit2修改完成后,就万事俱备 只欠东风了。

最后一步操做,依次在Reflector项目中点击右键 -> 选择 Reflexil -> 选择 Save as..

保存便可,这样就完成了修改代码,编译成功。如图

Reflexil Save

而后就ok了,运行看看:

Reflector Result

其实很简单,只是我写的可能稍微太细了点儿。

哈哈,反正看图不看文字应该也能够直接结束这篇文章。

如下是我反编译以后的程序下载地址,你能够做为练习再次反编译:TestWinform.Patched

 

【转自】http://www.javashuo.com/article/p-wxdsjyuf-gt.html

相关文章
相关标签/搜索