Reflexil是一个.NET程序集编辑器,结合Reflector,可以进行DLL代码注入等工作,实践证明完全可用,方便开发人员对.NET程序进行修改;可以作为一个Reflector插件修改程序集的IL并保存到磁盘文件,也可以在自己的.NET程序中调用进行更为灵活的.NET程序集修改。
Reflexil特色
可以改继承类,添加方法, 字段,事件,“replace all with code"功能也很强,可以C#的代码片段直接替换Method里的功能。
另外,子类里调用父类的方法,在msil里这个是直接用”父类::方法名",而且似乎非virtual也是调用callvirt 命令。
还有,签名的话,它会给你选是保留原来的,覆盖pfx,去除签名。我选保留原来的,不过这个是我自己做的程序,签名在电脑里注册过,不知道改别人的签名dll会不会有问题。
最后还顺便玩了下,SimpleAssemblyExplorer,也有些特色,不过似乎不能改继承类,添加方法, 字段,事件。代码到可以是重别的dll里倒入。
修改方法
下载Reflector插件Reflexil,并添加到Relector中。
在左边的对象树中打开需要修改的类,再在Reflexil中找到需要修改的地方,直接修改或删除就可以了,如下图
最后选择在对象树中选择DLL,并在Reflexil的Save As一下就可以了。
需要注意一下的是,一些DLL拥有强名称,重新应用的时候可能会出现错误,这时需要在Save As的时候去除一下强名称就可以了。