• ILSpy反编译工具的使用


    ILSpy反编译工具的使用。不过,ILspy需要在电脑上安装.NET Framework 4.0。ILspy可以将一个dll文件转换为C#或VB语言。ILspy对于单个文件可以保存为.cs文件或.vb文件,当文件较多时,可以选择保存为项目文件。C#语句可被ILspy反编译出来,并可支持yield return语句和 lambdas表达式的反编译。

    以前一直使用reflector来查看.net类库的一些信息,不过,自2011年2月份开始,reflector就开始转向收费软件了,所以爱好免费软件的开发者们转而开发自己的反编译软件。于是ILspy就因运而生了。ILSPY这个开源工具的目的就是代替reflector的,它反编译出的代码和reflector差不多。

    SharpDevelop 是除Visual Studio外,另一个可选择的唯一的.NET开放工具,并且它是开源的。它提供的功能也相当不错,几乎就是在重写Visual Studio。最新的版本中,直接增加了对Visual Studio的解决方安案文件和项目文件的支持。ILSpy是SharpDevelop小组的反编译工具,也是开放源代码的,下面介绍一下它的调试器和反编译器。

    ILspy的界面截图

    ILSpy的界面与Reflector相似,左边以树型控件显示程序集和它的类型,右边是对应的源代码。基础的反编译功能,与Reflector相比,丝毫不差,甚至有时候用Reflector无法反编译(因为加密)的程序集,用ILSpy可以反编译。
     

    ILspy需要在电脑上安装.NET Framework 4.0.
     
     
    ILspy常用的几个功能
     

    基础的类型反编译功能都具备

    现在只支持把源代码反编译为C#和IL语言,不支持VB。

    效果图为:

    ILSpy的代码保存功能

    当点击一个类型时,选择File->Save Code会反编译当前的类型并保存到指定的文件中,当选择程序集时,Save Code保存为一个项目(csproj)文件,并且把它所有的类型加到这个项目中。

    ILSpy的调试器功能

    这里要说的调试器,不是指Visual Studio的源码级别的调试器,而是指程序集的调试器。Reflector有个Addin,可以直接附加在Visual Studio中,调试第三方的类型库,而不需要把第三方的类型库反编译后,以源码的形式添加到项目中。

    ILSpy也有这个功能,直接对第三方的程序集进行调试,有两种选项

    如果第三方类型库是可执行程序(EXE),可以用Debug an executable来启动这个程序。

    如果第三方类型库是程序集(DLL),可以用Attach to running application来附加,以启动程序集的调试。

    从上图中已经可以看出它的用法,和调试源代码一样。在需要监视变量值的方法的地方,设置断点,当程序运行到此时,就可以通过监视窗体来观察变量的值。

    这两者的区别是,Attach to a running application调试时,如果代码经过编译器优化,则监视器会无法得到它的值。

    如图所示,无法显示正在调试的变量num的值,因为代码已经经过优化。官方推荐的方式是Debug an executable


    与在Visual Studio中调试.NET源代码一样,你可以Step into,Step over,continue,同时状态栏会显示就绪(stand by),运行中(running),正在调试(debugging)。

    除了调试程序集的C#/VB形式的代码之外,也可以以IL代码形式调试,如下图所示

    ILSpy的debugger是以插件形式存在的,请确保包含ILSpy.Debugger的Plugin。

    不过调试.NET程序集一定需要PDB文件才可以。然而ILSpy却没有产生PDB文件(no PDB files are generated),而且它不可以调试ASP.NET Web application和Web 服务。

  • 相关阅读:
    【jQuery基础学习】03 jQuery中的事件与动画
    【jQuery基础学习】02 jQuery的DOM操作
    【jQuery基础学习】01 jQuery选择器
    【jQuery基础学习】00 序
    【JS复习笔记】07 复习感想
    【JS复习笔记】06 方法
    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题
    嵊州D6T2 城市 city
    博弈论小结
    嵊州D2T4 十七个中毒的英国人 poisoning
  • 原文地址:https://www.cnblogs.com/hongmaju/p/4665181.html
Copyright © 2020-2023  润新知