【转载】教你使用 Reflexil 反编译.NET
简介
反编译的方式有很多种,其实最靠谱的还是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了,运行看看:
其实很简单,只是我写的可能稍微太细了点儿。
哈哈,反正看图不看文字应该也可以直接结束这篇文章。
以下是我反编译之后的程序下载地址,你可以作为练习再次反编译:TestWinform.Patched
【转自】https://www.cnblogs.com/jackking/p/6165294.html
【转载】教你使用 Reflexil 反编译.NET的更多相关文章
- 教你使用 Reflexil 反编译.NET 转
转自:http://www.wxzzz.com/711.html http://sebastien.lebreton.free.fr/reflexil/ http://www.aneasystone. ...
- 教你使用 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 ...
- 转载:常见EXE文件反编译工具
PE Explorer V1.99 R5 绿色汉化特别版_强大的可视化汉化集成工具 功能极为强大的可视化汉化集成工具,可直接浏览.修改软件资源,包括菜单.对话框.字符串表等: 另外,还具备有 W32D ...
- 教你如何一键反编译获取任何微信小程序源代码(图形化界面,傻瓜式操作)
一键获取微信小程序源代码 Tips: 一键获取微信小程序源码, 使用了C#加nodejs制作 直接解压在D盘根目录下后就可以使用 将小程序文件放到 wxapkg目录下3 这个目录下有一些demo 可以 ...
- 转: MyEclipse 10.0,9.0,8.0 下添加jadClipse反编译插件
MyEclipse 10.0,9.0,8.0 下添加jadClipse反编译插件 (2012-11-19 15:36:35) 转载▼ 标签: myeclipse jad 反编译 插件 it 分类: M ...
- .net反编译的九款神器(转载)
.net反编译的九款神器 转载来源: https://www.cnblogs.com/zsuxiong/p/5117465.html 本人搜集了下8款非常不错的.Net反编译利器: 1.Reflec ...
- 转载文章----IL反编译利器——Ildasm.exe和Reflector.exe:
转载地址:http://www.cnblogs.com/yangmingming/archive/2010/02/03/1662546.html 一:Ildasm.exe简介 这一微软VS自带工具, ...
- 转载文章----初识Ildasm.exe——IL反编译的实用工具
转载地址http://www.cnblogs.com/yangmingming/archive/2010/02/03/1662307.html Ildasm.exe 概要:(路径:C:\Program ...
随机推荐
- ionic2实战-使用Chart.js
前言 Chart.js官网 Chart.js中文文档 安装Chart.js 执行cnpm install typings -g,全局安装Typings 执行typings search chart.j ...
- mongodb使用1
首先官网下载mongodb放在根目录下.新建db文件夹,在命令行中进入bin路径,然后运行mongod开启命令,同时用--dbpath指定数据存放地点为“db”文件夹 mongod --dbpath= ...
- 基于webpack搭建vue-cli以及webstorm的设置
N1.检查本地电脑是否安装node和npm 安装vue-cli的前提是已经安装了npm 是否安装npm检查命令 npm -v 如果出现版本号,说明已经安装了npm 查看node版本号 node -v ...
- 使用filter: blur() 的时候解决图片周围泛白和容器外范围变模糊的问题
类似于这种,这个时候出现了周围变模糊,并且边缘泛白的情况 周围模糊这个问题很好解决,给父容器加overflow:hidden:就可以了 效果如上,至于周围泛白的问题就需要动点脑筋了,给目标添加 tra ...
- win8.1 uefi引导
装上win8后,感觉似乎开机比win7要慢一些,但实际掐表又发现几乎无差别,但是看网上别人都说 win8可以10秒以内开机,然后又说他们是采用uefi引导,而不是bios引导,那我也试试吧,如下: 1 ...
- [论文]A Link-Based Cluster Ensemble Approach for Categorical Data Clustering
http://www.cnblogs.com/Azhu/p/4137131.html 这篇论文建议先看了上面这一遍,两篇作者是一样的,方法也一样,这一片论文与上面的不同点在于,使用的数据集是目录数据, ...
- wireshark过滤数据
Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换.用来获取网络数据封包,包括http,TCP,UDP,等网络协议包.使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码 ...
- python3字符串操作总结
字符串截取 >>>s = 'hello' >>>s[0:3] 'he' >>>s[:] #截取全部字符 'hello' 消除空格及特殊符号 s. ...
- android的动态代码
1,Android代码设置Shape,corners,Gradient (http://blog.csdn.net/houshunwei/article/details/17392409) int ...
- 【转载】Javascript-XMLHttpRequest对象简介
XMLHttpRequest是Ajax的核心,通过调用XMLHttpRequest对象的属性和方法可以实现在客户端和浏览器之间进行数据的异步传输,从而实现页面的无刷新效果. XMLHttp ...