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

news2024/9/29 15:34:54

目录

  • 前言
  • 一、使用 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.把要反编译的 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 文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/353568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2023最火教程】5分钟学会接口自动化测试框架

今天,我们来聊聊接口自动化测试。 接口自动化测试是什么?如何开始?接口自动化测试框架如何搭建? 自动化测试 自动化测试,这几年行业内的热词,也是测试人员进阶的必备技能,更是软件测试未来发展…

【蓝桥杯集训5】递推专题(3 / 3)

目录 3777. 砖块 - 递推 1208. 翻硬币 - 递推 95. 费解的开关 - 递推 位运算 3777. 砖块 - 递推 3777. 砖块 - AcWing题库 题目: 思路: 要使所有砖块颜色一致,则要不全B,要不全W 则分情况讨论:全为白色和全为黑色…

MariaDB 成功敲钟上市 | 它与 Navciat 缘起 10 年前

MariaDB 敲钟上市2022 年底,云数据库公司 MariaDB 与 Angel Pond Holdings 公司完成合并,并在纽交所上市。新公司更名为 MariaDB,MySQL 之父奋斗了13年终敲钟。这标志着 MariaDB 开启新篇章。无论从开源还是商业之路,都将成为业内…

整理了十个Python自动化操作,拿走就用

01OS模块相关一、遍历文件夹 批量操作的前提就是对文件夹进行遍历,使用os模块可以轻松的遍历文件夹,os.walk 遍历后产生三个参数: 当前文件夹路径 包含文件夹名称[列表形式] 包含文件名称[列表形式] 代码如下,大家可以根据自己的…

SpringCloudAlibab-nacos

一、介绍注册中心配置中心的整合SpringCloudAlibaba中文地址:https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.x/README-zh.md下载地址:https://github.com/alibaba/nacos/访问:http://localhost:8848/nacos/二、使用1、添加依赖&…

[大邻域算法](MD)VRPTW常见求解算法--代码解析

相关链接: 【路径分割】序列分隔和路径提取的案例【算法】LNS(大邻域算法)和ALNS(自适应大邻域算法)(持更)Python实现(MD)VRPTW常见求解算法——自适应大邻域搜索算法(ALNS),本文也是该篇的解析干货 | 自适应大邻域搜索(Adaptive Large Neig…

【每日一题Day121】LC1139最大的以 1 为边界的正方形 | 前缀和数组 + 枚举

最大的以 1 为边界的正方形【LC1139】 给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。 写了50分钟写出来了 思路是对的 但就是不够清晰 并且…

ACPI on ARMv8 Servers

文章目录前言一、Why ACPI on ARM?二、Kernel Compatibility三、Relationship with Device Tree四、Booting using ACPI tables五、ACPI Detection六、Device Enumeration七、Driver Recommendations参考资料前言 ARM64处理器除了可以用设备树(DT&#…

V90伺服驱动器设置IP地址和PN设备名称的具体方法(2种)

V90伺服驱动器设置IP地址和PN设备名称的具体方法(2种) 1. 通过V-ASSISTANT软件进行配置 首先下载并安装V-ASSISTANT软件,然后将V90通过网线连接到电脑上,注意此时电脑使用的网卡,不能选择无线网卡, SINAMICS-V90伺服调试软件V-ASSISTANT_V1.07.01 打开V-ASSISTANT软件,…

Java 基础面试题——面向对象

目录1.面向对象和面向过程有什么区别?2.面向对象的有哪些特征?3.静态变量和实例变量有什么区别?4.Java 对象实例化顺序是怎样的?5.浅拷贝和深拷贝的区别是什么?5.1.浅拷贝5.2.深拷贝5.3.总结6.Java 中创建对象的方式有哪几种&…

Qt代码单元测试以及报告生成

简介 单元测试是所有测试中最底层的一类测试,是第一个环节,也是最重要的一个环节,是唯一一次有保证能够代码覆盖率达到100%的测试,是整个软件测试过程的基础和前提,单元测试防止了开发的后期因bug过多而失控&#xff0…

< elementUi 组件插件: el-table表格拖拽修改列宽及行高 及 使用注意事项 >

elementUi 组件插件: el-table拖拽修改列宽及行高 及 使用注意事项👉 资源Js包下载及说明👉 使用教程> 实现原理> 局部引入> 全局引入 (在main.js中)👉 注意事项往期内容 💨&#x1f4…

Android Studio adb命令

Android Studio在IP连接142的手机进行无线调试 adb tcpip 5555 // 端口 adb shell ifconfig wlan0 //查看ip adb connect 192.168.1.142:5555 当已经连接上142这个ip,还想再连接其他143这个ip 方法如下: adb devices -l 查看当前设备 adb …

直接下载docker镜像包

这周正在做APIcat的企业版研发,准备适配阿里云的计算巢提供企业直接云安装的功能,顺便把原来写过的一个直接下载docker镜像包的小程序挂到了Gitee上面,有需要的可以点击下载 https://gitee.com/extrame/dgethttps://gitee.com/extrame/dget …

安灯呼叫系统助力企业实现精益管理

在当前的生产企业管理过程当中,生产现场难免会出现各种异常情况影响生产,乳设备需要机修、品质问题、物料呼叫等各种情况,在以往这些问题出现过后处理的方式都是些申请单,由人工到各个部门去给领导签字,浪费大量时间沟…

【Unity VR开发】结合VRTK4.0:远距离抓取物体

语录: 我们都生活在阴沟里,但仍有人仰望星空。 前言: 空间场景中的一个常见问题是试图抓取一个无法触及或太远而无法到达的对象。VRTK提供了一种简单的方法来实现这种技术(Interactions.PointerInteractors.DistanceGrabber&…

上市公司每股社会贡献值(数据+代码)(2000-2020年)

数据来源:自我整理 时间跨度:2000-2020年 区域范围:上市公司 指标说明: 每股社会贡献值( 净利润所得税费用营业税金及附加支付给职工以及为职工支付的现金本期应付职工薪酬-上期应付职工薪酬财务费用捐赠-排污费及清理费) / 期…

MySQL服务器体系架构 执行原理

前言 前边我们了解了MySQL采用客户端/服务器架构,用户通过客户端程序发送增删改查需求,服务器程序收到请求后处理,并且把处理结果返回给客户端。这篇文章主要看下MySQL服务端是如何处理客户端的请求,感兴趣的小伙伴们可以参考借鉴…

【单目标优化算法】烟花优化算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

定时器设计

定时器设计 定时器应用: 游戏的Buff实现,Redis中的过期任务,Linux中的定时任务等等心跳检测,如服务器接收队列满了,tcp客户端会定时探测是否能够发送数据 定时器数据结构选取要求: 需要快速找到到期任务…