IL反编译利器——Ildasm.exe和Reflector.exe:

一: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代码,实现了对接口本质的揭示,认识到其在保持接口特有性(这里不铺开论述。)的基础上, 用抽象类的实现机制及其多态性实现抽象的。

转载于:https://www.cnblogs.com/yangmingming/archive/2010/02/03/1662546.html

IL应用之——用IL分析接口的本质相关推荐

  1. 拼多多关键词搜索商品详情分析接口(分类ID搜索精准商品数据)代码对接教程

    拼多多关键词搜索商品详情分析接口(分类ID搜索精准商品数据)代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String 是 调用key(必 ...

  2. 拼多多搜索商品详情分析接口代码对接教程

    拼多多搜索商品详情分析接口代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String 是 调用key(必须以GET方式拼接在URL中,点击 ...

  3. 「技术人生」第2篇:学会分析事物的本质

    简介: 对于研发同学而言,探究事物的本质,是最基础最核心最先需要被掌握的技能,没有之一. 作者:贺科学 技术一号位不是岗位,更多的是技术人员在公司中做事的一种心态,这个系列的文章适合所有想要对日常工作 ...

  4. 网络爬虫--24.【selenium实战】实现拉勾网爬虫之--分析接口获取数据

    文章目录 一. 思路概述 二. 分析数据接口 三. 详细代码 一. 思路概述 1.拉勾网采用Ajax技术,加载网页时会向后端发送Ajax异步请求,因此首先找到数据接口: 2.后端会返回json的数据, ...

  5. python抖音接口_「docker实战篇」python的docker-抖音分析接口数据分析(21)

    上节xposed已经安装完毕,设置对应的android的版本和代理服务器. 准备工作 1.xposed和JustTruestMe的安装 2.抖音安装完毕 启动fildder 点击进入指定的粉丝界面 查 ...

  6. Java写手机专题分析接口_jeesite学习文档API-内容管理模块

    内容管理模块功能说明ThinkGem 2014年6月17日 目录 1.管理功能 1.1.内容管理 1.1.1.内容发布 1.1.1.1.概述 栏目列表:以树结构方式显示网站整体设置的栏目,点击在右侧可 ...

  7. 负反馈分析方法的本质

    负反馈的本质原理和计算方法 节点方程                         精确  麻烦 替代原理 叠加原理        精确  方便  直观 本质 单端口通用反馈模型     近似  方 ...

  8. 似然函数的详细分析----似然函数的本质意义

    在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性. 似然函数在统计推断中有重大作用,如在最大似然估计和费雪信息之中的应用等等."似然性"与" ...

  9. [你必须知道的.NET]第十三回:从Hello, world开始认识IL

    发布日期:2007.7.22 作者:Anytao ©2007 Anytao.com ,原创作品,转贴请注明作者和出处. 本文将介绍以下内容: IL代码分析方法 Hello, world历史 .NET学 ...

最新文章

  1. 哪些人工智能公司有望上科创?(一)
  2. arch linux 同步时间,ArchLinux 设置系统时间
  3. vue如何split_vue代码分割的实现(codesplit)
  4. 【ExtJS实践】之五 :常用语句及脚本备忘
  5. iOS in-app purchase详解
  6. 票据纸张尺寸对照表_粉丝要求,这期整理一版平面设计必备各种尺寸知识(收藏版))...
  7. 变分法与最优控制matlab,1987_11变分法与最优控制_10654423.pdf
  8. vue 倒计时 插件_vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
  9. 网络工程师考试资料汇总
  10. java什么是工厂_java – 创建工厂的什么名字是什么? (FooFactoryFactory听起来很傻的imo)...
  11. 文件服务器 tmp文件夹,Linux管理临时文件tmpfiles
  12. js中文汉字转拼音详细教程
  13. 2019下半年的教师资格考试~学霸大佬们总结的记忆口诀涨分必备
  14. 微信支付【 wx.chooseWXPay、WeixinJSBridge.invoke】
  15. m=m++到底发生了什么
  16. linux获取触控板信息,关于linux:Linux-下通过命令行和脚本开关笔记本触控板和其他输入外设...
  17. 工程管理系统企业工程管理系统简介
  18. ORA-04091: table xxxx is mutating, trigger/function may not see it
  19. HTTP_REFERER的用法及伪造及去掉REFERER方法
  20. 榨汁机、酸奶机、绞肉机、面条机。。。谁在坑你的钱?

热门文章

  1. Feign api调用方式
  2. 用Kotlin撸一个图片压缩插件-实战篇(三)
  3. 【转载】优秀文章转载集合
  4. 数据库学习,树形结构的数据库表Schema设计方案
  5. 细数阿里云服务器的十二种典型应用场景
  6. 【运动快乐】享受赤脚慢跑 收获健康快乐
  7. 网络管理人员的未来?
  8. 实现一个通用的生产者消费者队列(c语言版本)
  9. Java Application和Java Applet
  10. jquery 获取系统默认年份_你没有看错,爬网页数据,C# 也可以像 Jquery 那样