C#反编译修改代码,然后重新生成dll

时间:2024-02-25 18:10:28

使用.NET提供的反编译工具ildasm和ilasm实现。

 

 

ilasm可利用中间语言IL生成可移植可执行文件(即编译过程);而ildasm是与前者配套的工具,它利用包含IL代码的可执行文件,创建适合输入到ilasm的文本文件(即反编译的过程)。

ildasm的软件目录通常为“C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools”,其中的版本可能根据安装不同而有所区别。可直接打开使用。

ilasm的软件目录通常为“C:\Windows\Microsoft.NET\Framework64\v4.0.30319”,其中的版本号及路径可能根据系统及安装不同而有所区别,该文件无法直接启动运行,通常在命令行中操作。建议提前将其添加到系统变量,过程不作赘述。

具体步骤如下:

1、打开ildasm后,选择需要修改的目标DLL或EXE文件,然后转存(dump)至目标文件夹path,转存前须自定义文件名称A。转存后,目录path中通常包含A.il和A.res两个文件,及其他resources文件。

2、打开A.il文件,按需求修改IL代码。

3、运行命令提示符,执行ilasm.exe /dll/resource=A.res A.il即可在同一目录path下生成A.dll文件。或者,执行ilasm A.il /output=B.dll /dll,可生成名称为B的dll文件。