晨风

-------------------- 业精于勤,荒于嬉;行成于思,毁于随

导航

C#中修改Dll文件 (反编译后重新编译)

Posted on 2014-07-14 15:50  shenyixin  阅读(7902)  评论(0编辑  收藏  举报

Dll文件生成后,如没有源代码,又要修改其中内容 
可以用微软自带的ildasm和ilasm程序 
先用ildasm将dll文件反编译成il文件 
ildasm Test.dll /out=Test.il 
会生成Test.res和Test.il两个文件 
il文件可以用文本编辑器修改,要注意其中的语法 

改完后再用ilasm将il文件重新编译成dll文件 
ilasm /dll /res:Test.res Test.il /out:Test.dll 

本人测试时因为ildasm和ilasm程序都是从网上下载来的,因为版本不一样,总是不成功,走了不少弯路 
用这样方式修改唯一不方便的是il文件语法不好理解,一版修改少量的可以用,大量修改也不合适。 

用Reflector将dll文件反编译成cs文件,也可以修改,这样好改,可是不好编译回去,有时会报错 
所以选则用Reflector还是用ildasm和ilasm,更据需求各自选择