2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 使用ildasm反编译修改c# dll

使用ildasm反编译修改c# dll

时间:2020-12-13 20:28:26

相关推荐

使用ildasm反编译修改c# dll

在开发中遇到这样一个场景,需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码。

操作步骤如下:

1. 运行ildasm

ildasm是由微软提供的.NET程序反编译工具,位于“C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\”。

2. 用ildasm打开要修改的程序集,如下图:

3. 通过ildasm保存为IL文件

选择菜单File>Dump,选择unicode编码,如下图:

4. 用文本编辑器打开第3步中得到的.il文件,如下图:

5. 修改.il文件中的代码并保存

6. 用ilasm(MSIL汇编程序)将.il文件编译为.dll文件

ilasm位于相应的.NET Framework目录中,比如:C:\Windows\\Framework\v2.0.50727\ilasm.exe

新建批处理bat:

C:\Windows\\Framework\v2.0.50727\ilasm.exe 编译.il /output=输出.dll /dll

好久以前遇到过一个项目,其中调用一个封装好了的dll,混淆加密加壳还打乱命名了,反编译了出来也是看起来头大,直接IL修改重新生成dll解决了问题。

最近又需要改一个这样的dll,记录下来步骤

首先把dll单独复制出来,查看dll运行库

然后导出.il文件.............................................................

特别注意:我第一次导出的是utf8格式,但是编译回去没成功,再次尝试导出unicode格式,再编译成功了

.............................................................

以下熟悉IL的可以对这个il文件作随意的修改

............................................................

修改完毕,保存

打开到

C:\WINDOWS\\Framework

确定了文件夹

C:\WINDOWS\\Framework\v2.0.50727

win+r cmd运行

生成刚刚修改完的IL,如果有.res资源文件 也需要一同输入

ilasm 源文件.il 源文件.res/output=目标文件.dll/dll

ilasm demo.il demo.res /output=demo.dll /dll

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。