在开发中遇到这样一个场景,需要修改一个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\Microsoft.NET\Framework\v2.0.50727\ilasm.exe

新建批处理bat:

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

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

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

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

   

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

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

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

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

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

修改完毕,保存

打开到

C:\WINDOWS\Microsoft.NET\Framework

确定了文件夹

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

win+r   cmd运行

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

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

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

使用ildasm反编译修改c# dll相关推荐

  1. 反编译C#的dll文件并修改,再重新生成dll

    1.把dll文件导入到ildasm工具中,ildasm是由微软提供的.net程序反编译工具,位于"C:\Program Files\Microsoft SDKs\Windows\v6.0A\ ...

  2. .net dll 反编译修改IL再编译,修改版本号

    记一次.net dll 反编译修改IL再编译exe 可用Everything搜索ildasm.exe 在用ildasm.exe打开dll或exe 点击文件右键转储 转储之后用visua studio ...

  3. 客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码

    一:背景 1. 讲故事 周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样的: 日期:2020-11-13 12:25:45,92 ...

  4. apk反编译修改源代码_单击即可将APK反编译为源代码

    apk反编译修改源代码 In this tutorial I will guide you how to decompile apk to source code in just one click. ...

  5. Unity3d 反编译破解游戏 简单示例 使用ildasm反编译DLL修改然后重新编译DLL

    因为这几天碰到一个Unity的Bug,不得不去反编译DLL看看C#代码的生成中间件代码.这也用到了一些反编译以及重新编译DLL的一些知识,意味到Unity是如此的不安全. 首先我们新建一个工程,创建一 ...

  6. 无源码程序反编译修改文字

    背景: 一同事提到某客户要求修改产品程序中的一段文字,正常情况下这是很简单的事情,不需要我这业余人员参与,但问题在于该客户使用的是旧版本产品,而旧版本产品的代码已遗失,这种情况下修改文字就成了一个棘手 ...

  7. 反编译android 状态栏沉浸,教程:反编译修改实现状态栏时间居左,去除锁屏运营商...

    本帖最后由 Gleam 于 2017-7-30 21:15 编辑 重要的事情说三遍: 操作不当会有风险,如不能开机,systemui无限错误等,修改之前确定是否备份system分区. 操作不当会有风险 ...

  8. Java-----jar反编译修改重新打包

    一.使用反编译工具JD-GUI(JD-GUI相关操作见Java-----反编译class文件)打开要修改的jar包(如update.jar),找到jar包中要修改的class文件(如a.class) ...

  9. 用apktool反编译,修改添加smali文, 再打包apk遇到的64k问题的解决方法 Unsigned short value out of range: 65536

    我把apk文件用apktool反编译后得到smali, smali_classes2, smali_classes3, smali_classes4.......... 然后手工修改包里的smali文 ...

  10. Android反编译修改apk并重新打包

    Apktool 是反编译Apk的第三方工具,它可以反编译资源,并在修改之后重新生成Apk 注意:apktool 依赖 Java1.8.请使用 java -version 查看,是否为1.8或更高版本. ...

最新文章

  1. mysql索引优化规则_Mysql优化选择最佳索引规则
  2. centos 更换java版本_centos7 更换jdk版本
  3. python教程第四版pdf下载-笨办法学python第四版
  4. MYSQL:HAVING
  5. gym103117L. Spicy Restaurant
  6. 编程之美-程序理解和时间分析
  7. 解决shiro和quartz2 版本冲突问题
  8. 第二届字节跳动夏令营启动全球报名,图灵奖得主授课
  9. python windows系统_Windows系统下Python-Windows详细安装教程
  10. 【Flutter从入门到实战】⑰Flutter的主题风格、Theme、DarkTheme暗黑模式、单独给单个页面设置Theme、屏幕适配、屏幕适配工具类封装、Flutter调试使用
  11. 2016年计算机一级excel试题及答案,2016年计算机一级试题加答案
  12. 农场游戏开发记录十二
  13. 「硬见小百科」30个EMC标准电路分享
  14. 图解通信原理与案例分析-11:无线调幅广播电台AM案例--天线以及高频信号的发送
  15. c语言循环语句解鸡兔同笼,JavaScript的for循环语句练习之解决鸡兔同笼问题
  16. 做视频不想用原声?这个可能是你需要的。
  17. 大学生笔记本购买指南——扫盲版(2019)
  18. linux机械硬盘提速,这几招提升机械硬盘速度的技巧连老师傅都不一定知道
  19. 树莓派安装成功后,搜索不到自己的WIFI
  20. 计算机辅助工业设计简化功能的作用,计算机辅助工业设计CAID-天津大学研究生e-Learning平台.PDF...

热门文章

  1. 正弦积分与余弦积分函数
  2. “焊”卫锂电 | 昂视锂电池密封钉视觉检测应用详解
  3. PHP之GD图像处理
  4. Ubuntu(Linux)腾达U12网卡驱动的离线安装
  5. 利用Python白玩steam游戏,我是专业的
  6. matlab高斯滤波去噪,图像平滑去噪之高斯滤波器
  7. 收集一些Qt学习网站
  8. jsp登录注册页面代码
  9. 录音文件下载_如何免费下载受版权保护的收费音乐
  10. 遥感原理与应用-基本概念