.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出现在列表中,且为选择状态,如下图所示:
  1. 在新创建的工程中,添加步骤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();

}

}

}

  1. 在上述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 分类:的更多相关文章

  1. windbg源码驱动调试 + 无源码驱动调试

    windbg源码驱动调试   环境信息 虚拟机:win7 32位 windbg:6.12(版本不存在太大影响) 设置过程 windbg与虚拟机连接:链接 配置windbg 配置好双机调试后,点击win ...

  2. chrome下的Grunt插件断点调试——基于node-inspector

    之前调试grunt插件时,都是通过人肉打log来调试.不仅效率低,而且会产生一堆无用的代码.于是简单google了下node断点调试的方法,总结了下. 借助node-inspector,我们可以通过C ...

  3. phpstorm中xdebug配置和断点调试

    今天赶紧把这个搞了  运行环境: phpStorm 2018 PHP 5.45 nts VC9 Xdebug 2.4.1 0x01 PHP安装xdebug扩展 自己之前装一直没装起 原来是版本问题 下 ...

  4. PhpStorm集成xdebug进行断点调试

    本文介绍如何使用PhpStorm集成xdebug在本地开发环境进行断点调试的技巧. 我配置的环境是:Windows10 + PhpStorm10.0.1 + PHP5.6. 1. 下载xdebug的扩 ...

  5. Zend Studio集成Xdebug断点调试详解

    转自:http://www.softown.cn/post/115.html Xdebug是PHP开发中两个常用的断点调试工具之一(另一个为Zend Debugger). 现在,我们在Zend Stu ...

  6. 史上最佳 Mac+PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境的配置

    在上一篇 PHP 系列的文章<PHP 集成开发环境比较>中,我根据自己的亲身体验,非常简略的介绍和对比了几款常用的集成开发环境,就我个人而言,比较推崇 Zend Studio 和 PhpS ...

  7. mac OS X下PhpStorm+MAMP PRO+Xdebug+FireFox集成开发和断点调试环境配置

    一.环境及软件 1.macbook pro 2.Phpstorm 3.MAMP PRO 4.FireFox 二.环境搭建 1.PhpStorm导入项目 下载PhpStorm并安装,网上随便找个注册码即 ...

  8. 本地环境phpStorm10+XDebug配置和断点调试

    安装环境:XAMPP;phpStorm版本10; windows 7 64bit. XAMPP.phpStorm 都直接安装在了D盘根目录,9999m目录建在D:\xampp\htocts下,即目录工 ...

  9. VS2010无法断点调试解决办法

    今天我的VS2010忽然出现设置断点的时候,无法进行调试.现象:每次在设置断点调试的时候都会出现卡机,然后VS弹出如下图所示的状况: 解决办法: 依次点击:“工具-->扩展管理器”然后找到.Ne ...

随机推荐

  1. 【HDOJ】4029 Distinct Sub-matrix

    思路是枚举矩阵列数,然后将字符矩阵转换成字符串,通过字符数组求不同子串数目.最后,减去不成立的情况.使用特殊字符分割可能的组合. /* 4029 */ #include <iostream> ...

  2. c# equals与==的区别

    对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false.对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true.对于 string ...

  3. I.MX6 Android Linux shell MMPF0100 i2c 设置数据

    #!/system/bin/busybox ash # # I.MX6 Android Linux shell MMPF0100 i2c 设置数据 # 说明: # 本文主要记录通过shell脚本来设置 ...

  4. webstorm使用教程之 使用github

    详细说下webstorm下设置,首先确认webstorm是否为最新版,然后点击(file->setting->github) 填完后点击test,确保畅通... 点击以后会出现弹出框,会让 ...

  5. 优秀it博客和文章

    优秀博客 综合 杨文博(供职于百度公司,任复合搜索部资深研发工程师,目前作为tech lead,负责垂直行业搜索后端架构研发.) 杨远骋 徐宥(Google 软件工程师. 这个中文博客是我的思考记录, ...

  6. 【转】angular Ajax请求

    1.http请求 基本的操作由 $http 服务提供.它的使用很简单,提供一些描述请求的参数,请求就出去了,然后返回一个扩充了 success 方法和 error 方法的 promise对象(下节介绍 ...

  7. HDU 5285 wyh2000 and pupil

    题意:有一群人,已知某两人之间互相不认识,要把这群人分成两部分,每部分至少一人,且在每部分内没有人互不认识. 解法:图染色.某场bestcoder第二题……看完题觉得是个二分图……完全不会二分图什么的 ...

  8. 咨询内容: TF卡一定要重新买吗,为什么我的放进去读不了呢

    京东回复:您好!先科(SAST) SA-992 便携数码音响 (兰色)不用重新买,但是需要您采用FAT分区重新格式化,感谢您对京东的支持!祝您购物愉快!

  9. Base-Android快速开发框架(一)--概述

    首先简单介绍一下Base.Base是本人长期以来经过10来款APP总结出来的一个Android快速开发框架.包含数据缓存模块.工具包.第三方组件包.网络模块.数据解析.常用主界面布局等.可以快速的开发 ...

  10. uva11732 strcmp() Anyone?

    题意:给出多个字符串,两两配对,求总配对次数. 思路:如果两个字符串一样,ans=strlen(字符串)*2+2,如果不同,ans=公共前缀长度*2+1:用左儿子右兄弟建字典树.插入一个字符计算一次. ...