当前位置: 首页 > news >正文

ilasm 和 ildasm编译和反编译工具介绍使用教程

目录

  • 前言
  • 一、使用 ildasm 反编译 dll 文件
  • 二、使用 ilasm 将il文件编译成 dll 或 exe 文件

前言

文本讲述怎么通过 ildasm 工具将 dll 文件进行反编译为 il 文件,修改 il 文件后再如何通过 ilasm 工具将 il 文件反编译成 dll 或 exe 文件。

ildasm工具:用于将dll文件反编译成可读的 il 文件(il是.NET框架中中间语言的缩写)

ilasm工具:用于将il文件编译成可执行的dll或exe文件

如果你安装了 Visual Studio 开发工具它会自带这两个工具,不安装的话可能会找不到,这两个工具和.NET框架开发语言的编译和反编译有关。


一、使用 ildasm 反编译 dll 文件

1.双击ildasm.exe运行ildasm工具。

ildasm 工具位置:

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe

2.把要反编译的 dll 文件拖入运行的 ildasm 里

效果如下:
在这里插入图片描述
在这里插入图片描述

你可以点击树形图展开查看所有的类和方法。

可以看到 IL_0000: ldarg.1IL_0006: ret这样的指令,这些指令就对应着不同的含义和执行顺序,简单来说可读代码最终就是编译成为了这样的操作指令,计算机就是根据这些指令去操作和执行的。

关于 il 文件的指令可以参考如下文章:
IL指令详细
ILDasm反编译工具的基础知识
读懂IL代码就这么简单
C# 构造函数避免IL(反编译)代码膨胀的方法

3.如果 il 文件拖到 ildasm 里提示 “受保护的模块 - - 无法进行反编译”
在这里插入图片描述

如果 il 文件拖到 ildasm 里提示 “受保护的模块 - - 无法进行反编译”,原因是SuppressIldasmAttribute这个属性导致的。

关于SuppressIldasmAttribute这个属性,它可以在程序集中声明,声明这个属性后,ILDasm便不对这个程序集进行反汇编,从而

起到一定程度的保护作用。

简单来说就是你的 il 文件里有 SuppressIldasmAttribute 相关代码,ildasm 检测到了这个代码就不反编译了。

解决办法:先把 ildasm.exe 备份一下,然后使用 WinHex 把 ildasm.exe里的 SuppressIldasmAttribute 去除。

操作步骤:

(1)下载WinHex WinHex (链接:https://pan.baidu.com/s/17LYCOuPJaxo_70q4fua4eQ 提取码:ej5b)

(2) 把C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\下的 ildasm.exe 拖进 WinHex 里,搜索SuppressIldasmAttribute 字符串,然后把 SuppressIldasmAttribute 随便改成其他的字符串,比如aaa啥的,下图改成了TianFangIldasmAttribute 。
在这里插入图片描述

(3)保存下,然后再把 il 文件拖到 ildasm 里就不会提示“受保护的模块 - - 无法进行反编译”了。

4.把要反编译的 dll 文件转储为il文件

点击文件选择转储,点击确定,选择转换后位置和输入转换后的文件名
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
然后你就得到了一个反编译后的 il 文件格式的文件,你可以用常见的文本编辑器打开并进行编辑和修改。

二、使用 ilasm 将il文件编译成 dll 或 exe 文件

上面你已经得到了反编译的 il 文件,等你修改好了 il 文件,可以通过使用 ilasm 工具将 il 文件编译成 dll或 exex 文件。

介绍下 ilasm 工具位置:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe

1.cmd 命令行进入il 文件所在目录,然后输入类似如下命令:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe FiddlerBackendSDK.il /output=FiddlerBackendSDK.dll /dll

说明:该命令调用 ilasm.exe 程序把当前目录的 FiddlerBackendSDK.il 文件编译成FiddlerBackendSDK.dll并输出到当前目录,你可以改成你的文件名和输出文件名。然后你就得到了编译好后的 dll 文件

相关文章:

ilasm 和 ildasm编译和反编译工具介绍使用教程

目录前言一、使用 ildasm 反编译 dll 文件二、使用 ilasm 将il文件编译成 dll 或 exe 文件前言 文本讲述怎么通过 ildasm 工具将 dll 文件进行反编译为 il 文件,修改 il 文件后再如何通过 ilasm 工具将 il 文件反编译成 dll 或 exe 文件。 ildasm工具:…...

代码随想录【Day20】| 654. 最大二叉树、617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树

654. 最大二叉树 题目链接 题目描述: 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最…...

C++空指针和野指针

空指针:指针被赋值为空 例如: int* p nullptr;int* p NULL; 空指针指向的地址是00000000,但空指针不可以解引用 野指针:指针指向了不可控的位置 例如: 未初始化 int* p; //野指针 越界访问 int intArr[5]{0, 1, …...

LinkedList正确的遍历方式-附源码分析

1.引子 记得之前面试过一个同学&#xff0c;有这么一个题目&#xff1a; LinkedList<String> list new LinkedList<>();for (int i 0; i < 1000; i) {list.add(i "");}请根据上面的代码&#xff0c;请选择比较恰当的方式遍历这个集合&#xff0c;并…...

【蓦然回首忆Java·基础卷Ⅱ】

文章目录对象内存解析方法的参数传递机制关键字&#xff1a;package、importpackage(包)JDK中主要的包介绍import(导入)JavaBeanUML类图继承的一些细节封装性中的4种权限修饰关键字&#xff1a;supersuper的理解super的使用场景子类中调用父类被重写的方法子类中调用父类中同名…...

Mybatis源码分析系列之第二篇:Mybatis的数据存储对象

前言&#xff1a;SQLSession是对JDBC的封装 一&#xff1a;SQLSession和JDBC的对照说明 左边是我们的客户端程序&#xff0c;右边是我们的MySQL数据仓&#xff0c;或者叫MySQL实例 Mybatis是对JDBC的封装&#xff0c;将JDBC封装成了一个核心的SQLSession对象 JDBC当中的核心对…...

防护设备检测实验室建设完整方案SICOLAB

防护设备检测实验室建造布局方案SICOLAB一、防护设备检测实验室通常需要划分为几个功能区域&#xff0c;包括&#xff1a;1、样品准备区&#xff1a;用于样品的接收、处理、准备等工作&#xff0c;通常包括样品接收台、洗手池、样品切割机等设备。2、实验操作区&#xff1a;用于…...

Linux知识之主机状态

1、查看系统资源占用 •可以通过top命令查看CPU、内存使用情况&#xff0c;类似Windows的任务管理器默认每5秒刷新一次&#xff0c;语法&#xff1a;直接输入top即可&#xff0c;按q或ctrl c退出 2、 top命令内容详解 •第一行&#xff1a;top&#xff1a;命令名称&#xff0…...

是时候为您的银行机构选择构建一个知识库了!

知识管理和自助服务客户支持在银行业至关重要。选择正确的知识库对于帮助客户和在内部共享信息同样重要。繁重的法规和合规性需求意味着银行必须在他们选择的知识库类型上投入大量思考。许多银行知识库已经过时&#xff0c;无法为客户提供成功使用您的产品和服务所需的信息。在…...

「TCG 规范解读」第7章 TPM工作组 TPM 总结

可信计算组织&#xff08;Ttrusted Computing Group,TCG&#xff09;是一个非盈利的工业标准组织&#xff0c;它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立&#xff0c;并采纳了由可信计算平台联盟&#xff08;the Trusted Computing Platform Alli…...

一、Plugin Constructing the Boilerplate

构建样板文件 在本章中&#xff0c;你将学习如何为一个新插件构建最少的代码。从起点开始&#xff0c;您将看到如何获取GStreamer模板源代码。然后&#xff0c;您将学习如何使用一些基本工具来复制和修改模板插件&#xff0c;以创建一个新的插件。如果您遵循这里的示例&#x…...

15、存储过程与函数

文章目录1 存储过程概述1.1 理解1.2 分类2 创建存储过程2.1 语法分析2.2 代码举例3 调用存储过程3.1 调用格式3.2 代码举例3.3 如何调试4 存储函数的使用4.1 语法分析4.2 调用存储函数4.3 代码举例4.4 对比存储函数和存储过程5 存储过程和函数的查看、修改、删除5.1 查看5.2 修…...

uniapp 原生安卓开发插件(module),以及android环境本地调试(二)

uniapp 原生安卓开发插件&#xff08;module&#xff09;&#xff0c;以及android环境本地调试&#xff08;一&#xff09; 1、前景 承接上一篇文章&#xff0c;由于uniapp每天只有限定的打包次数&#xff0c;所以每次插件调试都打包成为基座&#xff0c;这个不太方便&#x…...

【Java期末复习】《面向对象程序设计》练习库

目录 一、单选题 二、填空题 三、程序填空题 1、 super使用--有如下父类和子类的定义&#xff0c;根据要求填写代码 2、简单加法计算器的实现 3、House类 4、矩形类 5、创建一个Box类&#xff0c;求其体积 四、函数题 6-1 求圆面积自定义异常类 6-2 判断一个数列是…...

照片文件损坏能修复吗?

很多时候&#xff0c;我们都是把相机拍的照片保存在电脑上&#xff0c;或手机照片太多&#xff0c;也会上传到电脑里保存。这样就能腾出更多的存储空间。但在电脑里的照片文件有时会莫名其妙的损坏&#xff0c;提示已损坏等情况&#xff0c;一旦发生这样的事&#xff0c;这些照…...

Git分布式版本控制工具

1&#xff1a;目标了解Git基本概念 能够概述git工作流程 能够使用Git常用命令 熟悉Git代码托管服务 能够使用idea操作git 2&#xff1a;概述2.1&#xff1a;开发中的实际场景场景一&#xff1a;备份 小明负责的模块就要完成了&#xff0c;就在即将Release之前的一瞬间&#xff…...

Python爬虫(8)selenium爬虫后数据,存入sqlit3实现增删改查

之前的文章有关于更多操作方式详细解答&#xff0c;本篇基于前面的知识点进行操作&#xff0c;如果不了解可以先看之前的文章 Python爬虫&#xff08;8&#xff09;selenium爬虫后数据&#xff0c;存入sqlit3实现增删改查导入默认包和环境元素定位创建一个sqlit3表将爬虫到的信…...

最全Linux驱动开发全流程详细解析(持续更新)

Linux驱动开发详细解析 一、驱动概念 驱动与底层硬件直接打交道&#xff0c;充当了硬件与应用软件中间的桥梁。 具体任务 读写设备寄存器&#xff08;实现控制的方式&#xff09;完成设备的轮询、中断处理、DMA通信&#xff08;CPU与外设通信的方式&#xff09;进行物理内存…...

华为OD机试 - 乱序整数序列两数之和绝对值最小 | 机试题算法思路 【2023】

最近更新的博客 华为OD机试 - 简易压缩算法(Python) | 机试题算法思路 【2023】 华为OD机试题 - 获取最大软件版本号(JavaScript) 华为OD机试 - 猜字谜(Python) | 机试题+算法思路 【2023】 华为OD机试 - 删除指定目录(Python) | 机试题算法思路 【2023】 华为OD机试 …...

网上插画教学哪家质量好,汇总5大插画培训班

网上插画教学哪家质量好&#xff1f;给大家梳理了国内5家专业的插画师培训班&#xff0c;最新五大插画班排行榜&#xff0c;各有优势和特色&#xff01; 一&#xff1a;国内知名插画培训机构排名 1、轻微课&#xff08;五颗星&#xff09; 主打课程有日系插画、游戏原画、古风插…...

新手学吉他必看,这5个常见误区,避开了少走3个月弯路

经常会看到很多新手学吉他&#xff0c;学着学着就卡壳学不下去了&#xff0c;不是嫌按弦手疼&#xff0c;就是曲子弹不下去。特别是一些自学的朋友&#xff0c;网上随便东找些课&#xff0c;西看些视频&#xff0c;学下来进步很慢&#xff0c;3个月之后就改打“退堂鼓”了。其实…...

STM32智能展柜控制系统设计与实现

1. 项目概述在博物馆文物保存领域&#xff0c;环境参数的精确控制一直是个技术难点。我最近完成了一个基于STM32的智能展柜控制系统项目&#xff0c;这套方案能够实时监测并调节展柜内的温湿度及光照强度&#xff0c;为珍贵文物提供最佳保存环境。相比传统的人工监测方式&#…...

自动化论文生成方案:7款工具(爱毕业aibiye等)提供格式修正与LaTeX适配功能

工具快速对比排名&#xff08;前7推荐&#xff09; 工具名称 核心功能亮点 处理时间 适配平台 aibiye 学生/编辑双模式降AIGC 1分钟 知网、万方等 aicheck AI痕迹精准弱化查重一体 ~20分钟 知网、格子达、维普 askpaper AIGC率个位数优化 ~20分钟 高校检测规则通…...

2025届学术党必备的十大降AI率助手实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网 AI 检测系统借助对文本的分析来生成逻辑以及进行语言模式识别&#xff0c;以此识别机器…...

从“能用”到“好用”:给你的GoLand 2022.2.3装上这些插件,开发体验大不同

从“能用”到“好用”&#xff1a;给你的GoLand 2022.2.3装上这些插件&#xff0c;开发体验大不同 每天面对代码编辑器的时间可能比面对家人还长——这不是玩笑&#xff0c;而是许多开发者的真实写照。当GoLand从单纯的代码工具转变为你的"数字工作台"&#xff0c;插…...

抖音批量下载工具终极指南:免费下载去水印视频的完整教程

抖音批量下载工具终极指南&#xff1a;免费下载去水印视频的完整教程 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...

基于Matlab的自适应信号滤波降噪:心音信号处理之旅

基于matlab的自适应信号滤波降噪&#xff0c;利用自适应滤波器对心音信号进行降噪&#xff0c;包括了LMS算法&#xff0c;归一化LMS&#xff0c;变步长LMS和RLS算法&#xff0c;其中RLS的降噪效果最好 程序已调通&#xff0c;替换自己的数据可以直接运行在信号处理的领域中&…...

OrCAD Capture CIS DRC矩阵设置实战:如何自定义ERC检查规则

OrCAD Capture CIS DRC矩阵深度定制指南&#xff1a;从基础配置到高阶规则设计 1. 理解DRC矩阵的核心价值与应用场景 在复杂电路设计领域&#xff0c;标准化的设计规则检查(DRC)往往无法满足特殊元件的连接验证需求。OrCAD Capture CIS的ERC矩阵功能正是为解决这一痛点而生——…...

2024年实测:火狐浏览器上这3款广告过滤插件,谁才是真正的网页加速器?

2024年火狐浏览器广告过滤插件终极对决&#xff1a;谁才是网页加速王者&#xff1f; 在数字时代&#xff0c;网页浏览速度直接影响着我们的工作效率和上网体验。对于火狐浏览器用户来说&#xff0c;选择一款高效的广告过滤插件不仅能屏蔽恼人的广告&#xff0c;更能显著提升页面…...

Win11Debloat:Windows系统深度优化工具的全方位解决方案

Win11Debloat&#xff1a;Windows系统深度优化工具的全方位解决方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …...