使用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\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相关推荐
- 反编译C#的dll文件并修改,再重新生成dll
1.把dll文件导入到ildasm工具中,ildasm是由微软提供的.net程序反编译工具,位于"C:\Program Files\Microsoft SDKs\Windows\v6.0A\ ...
- .net dll 反编译修改IL再编译,修改版本号
记一次.net dll 反编译修改IL再编译exe 可用Everything搜索ildasm.exe 在用ildasm.exe打开dll或exe 点击文件右键转储 转储之后用visua studio ...
- 客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码
一:背景 1. 讲故事 周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样的: 日期:2020-11-13 12:25:45,92 ...
- apk反编译修改源代码_单击即可将APK反编译为源代码
apk反编译修改源代码 In this tutorial I will guide you how to decompile apk to source code in just one click. ...
- Unity3d 反编译破解游戏 简单示例 使用ildasm反编译DLL修改然后重新编译DLL
因为这几天碰到一个Unity的Bug,不得不去反编译DLL看看C#代码的生成中间件代码.这也用到了一些反编译以及重新编译DLL的一些知识,意味到Unity是如此的不安全. 首先我们新建一个工程,创建一 ...
- 无源码程序反编译修改文字
背景: 一同事提到某客户要求修改产品程序中的一段文字,正常情况下这是很简单的事情,不需要我这业余人员参与,但问题在于该客户使用的是旧版本产品,而旧版本产品的代码已遗失,这种情况下修改文字就成了一个棘手 ...
- 反编译android 状态栏沉浸,教程:反编译修改实现状态栏时间居左,去除锁屏运营商...
本帖最后由 Gleam 于 2017-7-30 21:15 编辑 重要的事情说三遍: 操作不当会有风险,如不能开机,systemui无限错误等,修改之前确定是否备份system分区. 操作不当会有风险 ...
- Java-----jar反编译修改重新打包
一.使用反编译工具JD-GUI(JD-GUI相关操作见Java-----反编译class文件)打开要修改的jar包(如update.jar),找到jar包中要修改的class文件(如a.class) ...
- 用apktool反编译,修改添加smali文, 再打包apk遇到的64k问题的解决方法 Unsigned short value out of range: 65536
我把apk文件用apktool反编译后得到smali, smali_classes2, smali_classes3, smali_classes4.......... 然后手工修改包里的smali文 ...
- Android反编译修改apk并重新打包
Apktool 是反编译Apk的第三方工具,它可以反编译资源,并在修改之后重新生成Apk 注意:apktool 依赖 Java1.8.请使用 java -version 查看,是否为1.8或更高版本. ...
最新文章
- mysql索引优化规则_Mysql优化选择最佳索引规则
- centos 更换java版本_centos7 更换jdk版本
- python教程第四版pdf下载-笨办法学python第四版
- MYSQL:HAVING
- gym103117L. Spicy Restaurant
- 编程之美-程序理解和时间分析
- 解决shiro和quartz2 版本冲突问题
- 第二届字节跳动夏令营启动全球报名,图灵奖得主授课
- python windows系统_Windows系统下Python-Windows详细安装教程
- 【Flutter从入门到实战】⑰Flutter的主题风格、Theme、DarkTheme暗黑模式、单独给单个页面设置Theme、屏幕适配、屏幕适配工具类封装、Flutter调试使用
- 2016年计算机一级excel试题及答案,2016年计算机一级试题加答案
- 农场游戏开发记录十二
- 「硬见小百科」30个EMC标准电路分享
- 图解通信原理与案例分析-11:无线调幅广播电台AM案例--天线以及高频信号的发送
- c语言循环语句解鸡兔同笼,JavaScript的for循环语句练习之解决鸡兔同笼问题
- 做视频不想用原声?这个可能是你需要的。
- 大学生笔记本购买指南——扫盲版(2019)
- linux机械硬盘提速,这几招提升机械硬盘速度的技巧连老师傅都不一定知道
- 树莓派安装成功后,搜索不到自己的WIFI
- 计算机辅助工业设计简化功能的作用,计算机辅助工业设计CAID-天津大学研究生e-Learning平台.PDF...