前言:
我们有可能遇到这样的问题:.NET网站程序包突然报错了,需要进行修改,而这个代码已经编译成了DLL文件,源代码找不到了。怎么办呢?下面我们就用NET.Reflector+Reflexil 插件相结合,对解析后的DLL文件进行代码修改,然后重新进行编译生成DLL。(这个Reflexil 插件只是用于编译IL中间程序的代码)
第一步:安装NET.Reflector
下载NET.Reflector和Reflexil 1.6,首先安装Reflector。
第二步:加载Reflexil插件
打开Reflector → Tools → Add-Ins → + → 选择Reflexil1.6的DLL文件,点击确定加载到Reflector中
选择Reflexil1.6插件里的Reflexil.Reflector.AIO.dll文件
添加好之后,在Tools的下拉菜单里,会多出一个Reflexil 1.6的选项,说明插件加载ok了。
第三步:使用Reflexil v1.6修改il代码
1、Reflector加载需要编译的DLL或exe文件,找到想要修改的方法,打开Tools → Reflexil v1.6 你将会看到对应方法的IL代码
2、在Reflexil编辑器中,找到需要修改的地方,通过Edit...操作进行修改。
3、回到Reflexil v1.6 编辑器的Instructions选项卡 ,在代码处右键选择Replace all with code...
4、在弹出的“Compie”对话框中,点击Complete按钮进行重新编译。
5、在NET.Reflector左侧栏的dll或exe上,右击 → Reflexil v1.6 → Save as 另存为编译后的新文件
这样我们就完成了通过Reflexil插件对dll或exe文件的修改。