当前位置:首页 > 芯闻号 > 充电吧
[导读]如果装了vs的话,可以在开始菜单中直接打开 Visual Studio 2008 命令提示 Ildasm.exe:将dll  、 exe编译为IL文件  (在命令行中输入Ildasm即可运行程序)il

如果装了vs的话,可以在开始菜单中直接打开 Visual Studio 2008 命令提示

 

Ildasm.exe:将dll  、 exe编译为IL文件  (在命令行中输入Ildasm即可运行程序)

ilasm.exe:将IL文件编译回dll或exe  (这个需要在命令行输入命令,没有可视化界面)

UltraEdit/NotePad++  : 文本处理工具

Reflector.exe/ILSpy  : 反编译工具 (百度一下,最好找破解版的)

 

二  步骤

1、采用 Reflector.exe/ILSpy  打开需要破解的Dll ;分析并找到 需要调整的程序段

2、采用Ildasm.exe 将 dll 编译为 IL文件

3、采用UltraEdit/NotePad++   打开IL文件 (找到对应的IL 代码,并将其修改)

4、删除强名publickey 块

5、采用ilasm.exe 将IL 文件编译回为 dll  (如: ilasm /dll /resource=f:mytest.res  f:mytest.il )


附(一):ildasm和ilasm命令的使用


修改.net程序集

使用ildasm命令将程序集转换为il
ildasm [DLLPATH] /output=[OUTPUTPATH]

在Reflector中把需要修改的方法拷贝到使用VS新建的一个项目的类中,通过添加引用,使这个方法能正常编译成功,然后就可以根据需要修改代码,然后编译该新建的项目,也使用ildasm命令将其发编译,然后在记事本中打开该发编译il文件,查找到该方法,然后拷贝该方法替换源程序集反编译il文件,最后使用ilasm命令将il文件编译为dll,使用reflector打开新编译的dll,看看修改结果。

举例:
原始dll App_Code.dll中GBO类中方法AddTopNewsToAllData有逻辑错误,需要修改
[操作之前先备份一下该程序集]
使用ildasm命令反编译ildasm d:\App_Code.dll /output=d:\App_Code\App_Code.il
然后在App_Code目录下会产生
App_Code.il和App_Code.res这两个文件

打开VS,新建一个类库项目
在Class1类中将该方法源码从Reflector中拷贝过来,通过添加相应的引用,使该方法能正常编译。根据需要修改该方法的逻辑,然后将编译后的该项目dll ClassLibrary1.dll 使用ildasm命令反编译
ildasm d:\ClassLibrary1.dll /output=d:\ClassLibrary1\ClassLibrary1.il
使用记事本打开ClassLibrary1.il找到方法的定义地方
.method public hidebysig static class [mscorlib]System.Collections.Generic.List`1

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭