大家开发过程中难免需要用一些第三方的插件,而很多插件提供商出于各种目的一般会将插件部分代码编译为动态链接库DLL。
有时候,我们需要对库中的一些内容进行简单的修改,例如我们项目中采用的一个DLL把处理文件的路径写死在DLL里,但是此路径与我们工程项目路径规划冲突,因此产生了修改此路径的需求。
具体方法比较简单,工具也都很好获得,步骤如下。
一、准备工具
1.ILSpy:
一款免费的反编译软件。笔者用过多款反编译软件,从准确性到简便性来看ILSpy都是首选。
2.ildasm.exe:
windows系统自带程序。将DLL转换成IL语言文件。
具体路径是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe
3.ilasm.exe:
windows系统自带程序。将IL语言文件生成DLL。
具体路径是C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
二、操作步骤
1.使用ILSpy打开DLL
在DLL中找到自己要修改的部分,如果找起来比较麻烦,可以在ILSpy中将DLL保存成源代码,然后在源代码中搜索关键字符进行定位。
2.使用ildasm.exe生成IL并修改
打开对应的DLL
然后如下图