教你使用 Reflexil 反编译.NET 转
转自:http://www.wxzzz.com/711.html
http://sebastien.lebreton.free.fr/reflexil/
http://www.aneasystone.com/archives/2015/06/net-reverse-decompiling.html
IL反汇编器(ILDASM)和IL汇编器(ILASM)Hello World小demo
简介
反编译的方式有很多种,其实最靠谱的还是IL反编译。
如果不懂IL可以尝试我这边文章入门:http://www.wxzzz.com/278.html
不过我下面要说的不是IL这种底层的代码反编译,而是Reflector中的Reflexil插件进行反编
也许有人会说Reflector不就是反编译了么,为什么还要用Reflexil这个插件? Reflector 仅仅是反编译出源码给你看,并不能在修改后编译回去。所以我们需要使用Reflexil这个插件进行反编译回去。
.NET 三种反编译方式
这里顺便介绍下我所知道的三种反编译回去的方式:
- 直接修改IL代码(当然,这比较难,需要熟悉IL汇编,但是也是最实用的。也许我会在以后的文章详细阐述)
- 使用Reflector进行整个代码项目的导出,然后用VS进行修改后编译(在大型项目中,如果有很多其他的dll引用,也许会让你寸步难行,无法使用VS编译通过,所以大型项目直接用IL汇编反编译关键代码即可)
- 使用Reflexil插件进行直接反编译(似乎这种要比第二种方法要好的多,至少很省事。其实实际使用起来也不是特别的方便,本文会进行一个稍微详细的使用介绍)
Reflexil 安装
在此之前你需要先去下载Reflector和Reflexil插件,这些你可以去百度或谷歌上面下载到。(如果你不会…那下面的文章不用看了)
下载好之后首先安装Reflector程序,安装完毕后在把Reflexil插件放到Reflector程序目录下面(其实是个dll文件而已),如下图所示

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

然后在弹出的界面中点击+号选择刚刚拷贝到Reflector中的Reflexil插件的dll文件,如下图所示
然后点击Close ,此时程序的 Tools 栏目下已经有了 Reflexil 插件选项。
要反编译的示例项目
本文反编译一个Winform程序(当然,你也可以反编译.NET 的其他 dll 文件),程序如下所示:
图

代码
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void btnTest_Click(object sender, EventArgs e)
- {
- MessageBox.Show("你好");
- }
- }
我们把这个exe程序进行反编译吧
开始反编译工作
首先在Reflector工具栏中依次点击 Tools -> Reflexil 打开 Reflexil 的窗口,如下图所示
然后打开你要反编译的程序集,我们编译自己写的Winform的exe程序作为测试吧,如下图所示。
然后我们选中我们要反编译的方法,在Reflexil插件中进行反编译,如下图所示。
可以直接在“你好”的那一栏进行点击右键选择 “Edit” 进行直接的编辑
也可以在图中的这个选项卡( Instructions ) 中的表的任意一栏点击右键选择,如下图所示
你可以直接Edit编辑单个文本,也可以Replace all with code... 编辑整个class的内容。
如果你选择的是Replace all with code... 来编辑整个内容的话,你需要在编辑完成后,在界面的左下角点击Complile 做编译操作。
但是似乎这个插件的编辑整个class的功能有缺陷,有些代码识别不出来。所以还是看情况使用吧,如果Replace all with code..不行,就直接选 Edit 编辑我们所选的内容即可。 我这里将“你好” 修改为 “你好,欢迎访问我的博客,www.wxzzz.com”。如下所示
修改完成后,就万事俱备 只欠东风了。
最后一步操作,依次在Reflector项目中点击右键 -> 选择 Reflexil -> 选择 Save as..
保存即可,这样就完成了修改代码,编译成功。如图
然后就ok了,运行看看:

教你使用 Reflexil 反编译.NET 转的更多相关文章
- 【转载】教你使用 Reflexil 反编译.NET
简介 反编译的方式有很多种,其实最靠谱的还是IL反编译. 如果不懂IL可以尝试我这边文章入门:http://www.wxzzz.com/278.html 不过我下面要说的不是IL这种底层的代码反编译, ...
- 教你使用 Reflexil 反编译.NET
简介 反编译的方式有很多种,其实最靠谱的还是IL反编译. 如果不懂IL可以尝试我这边文章入门:http://www.wxzzz.com/278.html 不过我下面要说的不是IL这种底层的代码反编译, ...
- Android Cocos2dx引擎 prv.ccz/plist/so等优化缓存文件,手把手ida教你逆向project反编译apk库等文件
前段时间在 Android play 上看到一个非常牛逼的 3D 动态天气预报,效果真的非常炫.二话不说动手 dex2jar.bat/apktool 发现这并没 有什么卵用,在核心的地方看见 nati ...
- 教你如何一键反编译获取任何微信小程序源代码(图形化界面,傻瓜式操作)
一键获取微信小程序源代码 Tips: 一键获取微信小程序源码, 使用了C#加nodejs制作 直接解压在D盘根目录下后就可以使用 将小程序文件放到 wxapkg目录下3 这个目录下有一些demo 可以 ...
- C# 反编译-Reflector 反混淆-De4Dot 修改dll/exe代码-reflexil
反编译工具 Reflector 破解版下载地址:http://pan.baidu.com/s/15UwJo 使用方法:略 反混淆工具De4Dot 开源软件 下载地址http://pan.baidu.c ...
- 手把手教你反编译别人的app
虽然iOS系统相比于其他手机操作系统相对安全,但是这个安全并不是绝对的,我一直相信,道高一尺魔高一丈.此文想以实际例子出发,告诉大家,如何去反编译一个app,并且从某个角度来说,iOS没有传说中的“安 ...
- 教你如何反编译app,拿到加密方式
大家知道app 有安卓和ios 安卓是apk 现在基本上apk都是经过加密的 想动态脱壳没一定的技术是搞不定的 IOS是ipa 今天我主要讲的是这个 准备好反编译设备 1.一套越狱的ios手机 我 ...
- 【转】一步一步带你反编译apk,并教你修改smali和重新打包
一.工具介绍: 1.apktool:aapt.exe,apktool.bat,apktool.jar;三个在同一目录结合使用,用来反编译apk,apk重新打包: 2.dex2jar:该工具作用是将cl ...
- Andorid 反编译App
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23564065 开发的过程中,有时候可能会去使用别的app里面的图片,参考布局甚至 ...
随机推荐
- 使用itext导出pdf
导出pdf这个功能是在工作中遇到的,写这个功能的时候遇到了不少的问题,比如中文乱码,不显示的问题,这些问题在我不断的测试,研究后都一一解决了. 第一步,先导入所需要的jar包 第一个jar包是用于解决 ...
- 移动前端开发之viewport,devicePixelRatio的深入理解
移动前端开发之viewport的深入理解 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的met ...
- COGS2259 异化多肽
传送门 听说是多项式求逆的模板题,以后不怕没地方练多项式求逆啦哈哈…… …… 我们设使用一个氨基酸能组成质量为$n$的多肽数量这个数列为$\{a_n\}$,设它的生成函数为$A(x)$,显然有 \be ...
- Java的Final和C#的Const,Readonly比较分析(转载)
Java里面没有readonly关键字,预留了const的关键字,目前还没有实际用途,在Java中,跟这两个关键字比较接近的是final; C#中,两者都存在并可用.两者修饰的全局变量或局部变量都不能 ...
- OpenLayers介绍和第一个例子(转载)
什么是OpenLayers? 作者:田念明出处:http://www.cnblogs.com/nianming/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位 ...
- SSIS 使用OLEDB/ADO NET Source 数据流source控件 连接Oracle失败
在做数据提取的时候发现一个非常奇怪的问题. Oracle客户端是安装正确并且Toad可以正常运行的,但是在新建OLEDB/ADO NET Source 数据流source控件连接Oracle的时候一直 ...
- (MVVM) ListBox Binding 和 实时刷新
当需要用Lisbbox 来log 一些记录的时候,ObservableCollection 并不可以是记录实时的反应在WPF 的UI上面. 这个时候就需要用一个异步collection 来完成. // ...
- 批量删除微博的js代码
清空微博,网上找了一段js代码,试了下,还行. var fileref=document.createElement('script') fileref.setAttribute("type ...
- VC6.0创建DLL动态链接库四大要素
原文:http://blog.csdn.net/wanghaihao_1/article/details/51098451 要成功地编辑,编译和链接一个动态链接库,应该包括以下要素:建立工程文件,使用 ...
- 记开发个人图书收藏清单小程序开发(四)DB设计
早上起来,又改动了一下: 主要是,将非常用信息全部拆分出来,让Table尽量的小,小到不能继续拆分了,这样区分DB逻辑.增加了FileBank存储Book的封面图片,统一管理图片资源. 新添加的Typ ...