采用Reflector的VS.net插件断点调试无源码DLL
来源:互联网 发布:防恶意代码软件 编辑:程序博客网 时间:2024/05/02 01:34
.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/
- 采用Reflector的VS.net插件断点调试无源码DLL
- 采用Reflector的VS.net插件断点调试无源码DLL
- 采用Reflector的VS.net插件断点调试无源码DLL
- .NET反编译工具Reflector及插件Reflector.FileDisassembler.dll
- .NET反编译工具Reflector及插件Reflector.FileDisassembler.dll
- 使用.NET Reflector插件FileDisassembler还原源码!
- 使用.NET Reflector插件FileDisassembler还原源码
- 使用.NET Reflector插件FileDisassembler还原源码
- 使用.NET Reflector插件FileDisassembler还原源码!
- 使用.NET Reflector插件FileDisassembler还原源码!
- 使用.NET Reflector插件FileDisassembler还原源码
- eclipse 与 weblogic及tomcat的无插件断点调试
- eclipse 与 weblogic及tomcat的无插件断点调试
- eclipse 与 weblogic及tomcat的无插件断点调试
- eclipse 与 weblogic及tomcat的无插件断点调试
- eclipse+weblogic+tomcat无插件断点调试
- eclipse+weblogic+tomcat无插件断点调试
- vs调试c++源码无法加载断点
- 关于2015阿里移动推荐算法大赛的总结(二)——推荐算法
- Xsolla和免费MMORPG网页游戏开发商Artix Entertainment达成合作
- canny边缘检测
- apt-get常用命令
- java Class类
- 采用Reflector的VS.net插件断点调试无源码DLL
- c语言学习的资料
- 内存按字节编址,地址从A4000H到CBFFFH,共有多少个字节呢?
- 操作数的寻址方式(非常重要)
- spring和spring MVC整合
- ST-Link/V2不能挂载到VirtualBox的解决办法
- mongod 启动报错
- 自己实现LinkedList集合add,get,remove
- Python 实现斐波那契数列 (黄金分割数列)