使用ilasm 和 ildasm编译和反编译工具对DLL文件修改

目录

前言

文本讲述怎么通过 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 里

 

点击节点可以看到所有的类和方法

 3.如果 il 文件拖到 ildasm 里提示 “受保护的模块 - - 无法进行反编译”

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

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

操作步骤:

(1)下载WinHex

(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文件

点击文件选择转储,点击确定,选择转换后位置和输入转换后的文件名(最好和dll文件名保持一致)。
 

 

 保存后就得到了一个反编译后的 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 文件所在目录,然后在cmd中输入类似如下命令转换为dll文件:

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

备注:该命令调用 ilasm.exe 程序把当前目录的 SDKDemo.il 文件编译成SDKDemo.dll并输出到当前目录,也可以改成需要的文件名和输出文件名。最终将得到了编译好后的 dll 文件。

posted @ 2024-03-07 15:57  孔小爽  阅读(91)  评论(0编辑  收藏  举报
作者:孔小爽 引用请标明出处:https://www.cnblogs.com/kongxiaoshuang/