转载文章----IL反编译利器——Ildasm.exe和Reflector.exe:

转载地址:http://www.cnblogs.com/yangmingming/archive/2010/02/03/1662546.html

一:Ildasm.exe简介 

这一微软VS自带工具,在上一篇博文《初识Ildasm.exe——IL反编译的实用工具》中已经做了详细介绍,这里不再鳌述;

二:Reflector.exe简介

至此(10.02.03),从 http://www.aisto.com/roeder/dotnet 下载的最新版本为Latest version: 5.1.6.0 ,这里还以上篇中经典的"Hello World."示例演示,当用Reflector.ext打开可执行文件时,主界面如下:

可见Reflect.exe的功能要强于Ildasm.exe,它可以反编译IL、C#、Visual Basic、Delphi、MC++、甚至是Chrome,而且它的界面更加友好,所以他被冠称为深入IL的最佳利器!

我们先看它所反编译的IL代码是何模样?是否同于Ildasm.exe的效果?图示如下:

比较之后,可得Reflector.exe具有更容易理解的界面(没有Ildasm.exe中众多的标识符,见上篇博文的MSDN帮助图) 。

当然,之所以称 Reflector.exe为深入IL的最佳利器,是因为它可以反编译IL语言,以及C#语言!这样我们:可以在完全没有源代码的情况下研究所使用的程序集!!!示例图见上上图,所示,我们发现果然编译为了源代码,且完全正确,这太令人惊讶了,而它的作用必定是意义深远的!

用IL揭示接口的本质:

一:接口本质

我们先看一个普通的接口定义:如图示:

而用Reflector.exe反编译的IL代码为:

可见接口实质上 ,被编译为抽象类,其中接口中的方法,被编译为抽象方法(abstract virtual),没有实现体。

二:接口的抽象实现原理

先来看最基本的类继承接口的示例,如下图:

而其对应的IL代码,用Reflector.exe编译为:

这样可以看到该类中,对应接口的函数,在这里实现了"覆盖"——Override!因此接口的抽象机制,采用多态来实现的!

综述之,通过对Reflect.exe的实例应用,了解了更多的IL反编译工具。同时通过IL代码,实现了对接口本质的揭示,认识到其在保持接口特有性(这里不铺开论述。)的基础上, 用抽象类的实现机制及其多态性实现抽象的。

时间: 2024-12-14 00:31:10

转载文章----IL反编译利器——Ildasm.exe和Reflector.exe:的相关文章

转载文章----初识Ildasm.exe——IL反编译的实用工具

转载地址http://www.cnblogs.com/yangmingming/archive/2010/02/03/1662307.html Ildasm.exe 概要:(路径:C:\Program Files (x86)\Microsoft SDKs\Windows\v数字.0\bin) 一.前言: 微软的IL反编译实用程序——Ildasm.exe,可以对可执行文件(ex,经典的控制台Hello World 的 exe 可执行文件)抽取出 IL 代码,并且给出命名空间以及类的视图.在讲述如何

初识Ildasm.exe——IL反编译的实用工具

原文地址:http://www.cnblogs.com/yangmingming/archive/2010/02/03/1662307.html Ildasm.exe 概要: 一.前言: 微软的IL反编译实用程序——Ildasm.exe,可以对可执行文件(ex,经典的控制台Hello World 的 exe 可执行文件)抽取出 IL 代码,并且给出命名空间以及类的视图.在讲述如何反编译之前,有必要从虚拟CPU的角度来看CLR,这样有助于先从正面了解代码执行过程. 虚拟CPU: .NET 程序,其

IL反编译的实用工具Ildasm.exe的使用方法

一.前言: 微软的IL反编译实用程序--Ildasm.exe,可以对可执行文件(ex,经典的控制台Hello World 的 exe 可执行文件)抽取出 IL 代码,并且给出命名空间以及类的视图.在讲述如何反编译之前,有必要从虚拟CPU的角度来看CLR,这样有助于先从正面了解代码执行过程. 虚拟CPU: .NET 程序,其核心皆为 CLR ,而同时CLR的功能却与CPU非常相近,其中CLR执行IL代码(或叫做,IL指令).操作数据,只不过操作的代码不同:CPU操作机器语言,而CLR操作IL代码.

8款非常不错的.Net反编译利器

本人搜集了下8款非常不错的.Net反编译利器: 1.Reflector Reflector是最为流行的.Net反编译工具.Reflector是由微软员工Lutz Roeder编写的免费程序.Reflector的出现使·NET程序员眼前豁然开朗,因为这个免费工具可以将·NET程序集中的中间语言反编译成C#或者Visual Basic代码.除了能将IL转换为C#或Visual Basic以外,Reflector还能够提供程序集中类及其成员的概要信息.提供查看程序集中IL的能力以及提供对第三方插件的支

Java反编译利器-Jad, Jode, Java Decompiler等及其IDE插件

转自:http://blog.csdn.net/superbeck/article/details/5189231 对于长年使用Java的程序员,大部分应该都会或多或少的使用到反编译软件.毕竟,不可能你所使用到的每一个包都会提供完善的javadoc,而且,有时候代码比javadoc更容易理解.这里将讲述笔者所了解的一些反编译软件以及它们各自的IDE插件版. 简介 现在业内的反编译软件据说有几十种.其中有jad,以及基于jad而开发的其他反编译软件(Front End Plus.mDeJava.D

Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

一.前言 在之前的破解过程中可以看到我们唯一离不开的一个神器那就是apktool了,这个工具多强大就不多说了,但是如果没有他我们没法涉及到后面的破解工作了,这个工具是开源的,也是使用Java语言开发的,代码相对简单,我们今天就来分析一下他的大体逻辑,注意是大体逻辑哦,因为如果要一行一行代码分析,首先觉得没必要,其次浪费时间,有了源码,谁看不懂呢.至于为什么要分析这个工具其实原因只有一个,就是我们在之前的反编译过程中会发现,总是有那么几个apk应用不让我们那么容易的反编译,他们就利用apktool

.net 反编译利器 dnspy

Binaries Latest release: https://github.com/0xd4d/dnSpy/releases Latest build (possibly unstable): https://ci.appveyor.com/project/0xd4d/dnspy/build/artifacts Features Assembly editor Decompiler Debugger Tabs and tab groups Themes (blue, dark, light

[C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护)

[C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护) 标签: .net加密产品c#dll工具 2011-03-24 21:06 27009人阅读 评论(13) 收藏 举报 分类: C#/.NET(4)  Decompile(6) 说 明:你希望自己用.net辛辛苦苦做出来的软件被人轻易破解吗?你希望自己花了大量人力物力用.net开发出来的产品被竞争对手轻易获取核心代码吗?这是 一篇比较详尽地介绍如何保护自己的.net源代码的文章,如混淆.加密和强名称等,出于保护原作者的角度,所

Mono加密DLL也没用,借助IDA dump内存 直接提取解密后的DLL,反编译破解Unity游戏

之前有介绍过通过重新编译Mono 来加密DLL的方式,来避免Unity 游戏被反编译修改破解,然而这种方式只能防住一些小白玩家,稍微有技术的玩家分分钟就破解了,下面也介绍下一个Unity游戏是如何被破解的. 首先,对于没有重编Mono 进行加密的,直接找到DLL,反编译修改代码就搞定,详细请参照我之前写的文章 Unity3d 反编译破解游戏 简单示例 (使用ildasm反编译DLL修改然后重新编译DLL) 然后对于重编Mono进行加密过的,可以借助IDA来破解,如下: 转自http://blog