用ildasm/ilasm修改IL代码
Posted dudu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用ildasm/ilasm修改IL代码相关的知识,希望对你有一定的参考价值。
在开发中遇到这样一个场景,需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码。
操作步骤如下:
1. 运行ildasm
ildasm是由微软提供的.NET程序反编译工具,位于“C:\\Program Files\\Microsoft SDKs\\Windows\\v7.0A\\bin\\”。
2. 用ildasm打开要修改的程序集,如下图:
3. 通过ildasm保存为IL文件
选择菜单File>Dump,选择UTF-8编码,如下图:
4. 用文本编辑器打开第3步中得到的.il文件,如下图:
5. 修改.il文件中的代码并保存
6. 用ilasm(MSIL汇编程序)将.il文件编译为.dll文件
ilasm位于相应的.NET Framework目录中,比如:C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\ilasm.exe
在命令行中执行下面的命令:
ilasm 源文件.il /output=目标文件.dll /dll
7. 完成。
参考文章:
以上是关于用ildasm/ilasm修改IL代码的主要内容,如果未能解决你的问题,请参考以下文章
在运行时修改导致 InvalidProgramException 的 IL 代码