Reflector
来源:互联网 发布:淘宝图片空间网址 编辑:程序博客网 时间:2024/04/30 22:27
.Net的编程利器Reflector可以反编译基于.net开发的应用程序和DLL,其功能强大不用多说。今天想试验一把利用VS.NET的插件断点调试外部无源码的DLL(只要是程序集都可以,所以exe也行)功能。
一.加载VS.net的Reflector插件
从官网下载的Reflector程序(最新版本为6.1.0)包中自带了VS.Net的插件,名称为“RedGate.Reflector.Addin.dll”,打开Red Gate’s .Net Reflector程序,选择菜单Tools->Integration Options,打开Integration Options对话框,其支持VS2005/2008/2010三个版本的开发环境,其会自动判断当前系统中安装了哪些开发环境,如果某开发环境不可用,对应选项前会自动灰掉并提示”not installed on this computer”。本文将采用VS2008来进行试验,故确定选择Visual Studio 2008选项。点击OK,就会自动帮我们安装好该插件。安装好后,会在VS2008的开发IDE中添加.NET Reflector顶层菜单和右键菜单。
注意:一旦安装好该插件后,不能对Reflector程序的位置进行移动,否则启动VS.net开发环境,会提示插件已移除,并要求重新进行配置。
二.创建DLL Demo程序
用VS2008创建一个非常简单的DLL,其代码如下:
namespace DLLDemo
{
public class Test
{
public string SayHello(string name)
{
string message = "Hello," + name;
return message;
}
}
}
三.反编译DLL Demo代码,并开始断点调试
1. 创建新的调用程序工程(ReflectorTest.sln),然后选择菜单.NET Reflector->Choose Assemblies to Debug, 出现选择程序集的对话框,默认出现当前加载的.NET framework的命名空间,取消选择全部,因为本试验不想断点调试framework中的代码。点击左下方的Browser按钮,浏览到步骤2开发的DLL:DLLDemo.dll,.NET Reflector将自动开始反编译,结束后如果再次打开选择程序集的对话框,我们选择的DLLDemo.DLL出现在列表中,且为选择状态,如下图所示:
2. 在新创建的工程中,添加步骤2开发的DLL引用,添加如下代码:
namespace ReflectorTest
{
class Program
{
static void Main(string[] args)
{
DLLDemo.Test test = new DLLDemo.Test();
string message=test.SayHello("Roger");
Console.WriteLine(message);
Console.ReadLine();
}
}
}
3. 在上述string message=test.SayHello("Roger");设置断点,运行程序,当运行此行代码中,按下F11,单步调试即可进入DLLDemo的反编译代码。仔细观察一下IDE中Test类代码页的上方是只读的,即是反编译代码。
后记:
1. VS.net的.Net Reflector插件最新版本是需要激活的,可以采用软件RedGate.Licensing.exe最新版本进行激活,下载地址为http://yww.qsh.eu/post/2010/03/29/RedGateLicensingexe.aspx,需要注意的是,在激活软件前需要先点击RedGate.Licensing.exe软件最下方的安装,然后将激活码填写到VS.net中的Red Gate’s .Net Reflector激活窗口中,在激活过程中,确保RedGate.Licensing.exe为打开状态。
2. Red Gate’s .Net Reflector还有很多的插件可以使用,具体可参考如下网址:http://reflectoraddins.codeplex.com/
- 顶
- 0
- 踩
- Reflector~
- Reflector
- Reflector
- Reflector
- Reflector.FileDisassembler
- Reflector 插件
- ildasm Reflector
- NET Reflector
- .net reflector
- Reflector越来越好用了
- Reflector下载地址
- .NET反编译工具Reflector
- Reflector for .NET
- 使用.NET Reflector
- [转][反编译]Reflector使用手记
- Reflector保护方法初探
- 使用.NET Reflector
- 关于Reflector的使用
- windows下 zookeeper dubbo 安装+配置+demo 详细图文教程
- 1-关于Vue
- 学习spring4x
- MongoDB设置 Replication Sets
- day29 Linux02
- Reflector
- 运维要背锅了!因数据库配置不当美国2亿选民数据泄漏
- hadoop 使用ip配置导致hdfs启动失败 Datanode denied communication with namenode
- java 循环问题 大全 求2~100a之内的素数。求水仙花数:(1~1000)。有1、2、3、4四个数字,输出所有能组成的互不相同且无重复的三位数。打印空心菱形
- String StringBuffer,StringBuilder整理
- Floyd算法——最短路径
- 【spring】--Bean作用域
- C++中指针与引用的区别
- Socket非阻塞模式开发