zoukankan      html  css  js  c++  java
  • ILDASM的使用

    写在前面:微软中间语言(MSIL)是一种语言,所有.NET的语言如C#,VB.NET都会被编译成为IL语言。ILDASM是.NET环境自带的反编译工具,可以查看到dll或exe生成的源代码。而因为IL是一种语言,按IL的语法可以反向生成dll,如果您想修改.NET自带的dll的源代码,这是一个方法。

    ILDASM举例
    来自互联网的例子

    private void Form1_Load(object sender, EventArgs e)
    {
    int i = 0;
    i = i++;
    MessageBox.Show(i.ToString());
    }


    在开始-所有程序-Microsoft .NET Framework SDK v2.0-Tools-MSIL反汇编程序中,可以找到ILDASM工具,如果您已经删除了这个快捷方式,可以在开始-所有程序-Microsoft Visual Studio 2005-Visual Studio Tools-Visual Studio2005命令提示,然后键入ildasm,就可以显示这个工具,如果连这个快捷方式都删除了,就只能直接从安装目录中搜索这个文件了。生成的IL代码是

    .method private hidebysig instance void Form1_Load(object sender,
    class [mscorlib]System.EventArgs e) cil managed
    {
    // 代码大小 22 (0x16)
    .maxstack 3
    .locals init ([0] int32 i)
    IL_0000: ldc.i4.0
    IL_0001: stloc.0
    IL_0002: ldloc.0
    IL_0003: dup
    IL_0004: ldc.i4.1
    IL_0005: add
    IL_0006: stloc.0
    IL_0007: stloc.0
    IL_0008: ldloca.s i
    IL_000a: call instance string [mscorlib]System.Int32::ToString()
    IL_000f: call valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
    IL_0014: pop
    IL_0015: ret
    } // end of method Form1::Form1_Load


    生成IL代码,可以在一定程序上帮助我们理解代码执行的内容。

    使用ILDASM和其它工具修改.NET自带的dll
    您可以在网上搜索这个文章
    微软MVP手把手教你如何修改.NET Framework
    笔者正是从这个网址了解相关信息http://bbs.bbsgood.com/post_6_151902_1.html
    原理
    系统自带的dll被调用之后,会在临时的目录中生成il代码,使用FileMon这个工具可以找到这一特定的dll。找到目录后,使用ildasm反编译dll,生成il文件,再使用Reflector工具找到自己要修改的代码,在了解IL语言的前提下,修改相关的IL代码。最后编译为dll,放到相应的目录。
    不过这个过程实在是太辛苦,又会导致系统默认的dll版本不统一。一般情况下不要使用。

  • 相关阅读:
    centos 6.5 查看、开启,关闭 端口
    centos 安装 nginx
    centos 安装 svn
    centos 安装 maven
    (转)不停止Nginx服务的情况下平滑变更Nginx配置
    记录1---python+linux+vim之while循环语句使用
    记录1---linux系统之创建用户,用户登录,查看用户名,切换用户登录,退出登录
    记录——Fiddler5.0 中文版 绿色免费版 汉化破解版安装
    fiddler笔记1---fiddler的安装 和 证书安装 以及 证书导出失败问题解决
    fiddler笔记2--fiddler工具界面的功能使用与介绍
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/fadfds.html
Copyright © 2011-2022 走看看