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

操作步骤如下:

1. 运行ildasm

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

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

3. 通过ildasm保存为IL文件

选择菜单File>Dump,选择UTF-8编码,如下图:

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文件

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

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

以下熟悉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

ildasm、ilasm修改、反编译 已经编译的 dll文件(c#)相关推荐

  1. 如何通过ildasm/ilasm修改assembly的IL代码(转

    作者: 周银辉  来源: 博客园  发布时间: 2011-05-16 22:36  阅读: 3258 次  推荐: 3   原文链接   [收藏] 这段时间为跟踪一个Bug而焦头烂额,最后发现是Fra ...

  2. 如何通过ildasm/ilasm修改assem“.NET研究”bly的IL代码

    这段时间为跟踪一个Bug而焦头烂额,最后发现是Framework的问题,这让人多少有些绝望.所以到微软论坛提了个帖子,希望能得到些帮助.虽然论坛智能到能够判断楼主是否是MSDN订阅用户,以便尽快解决( ...

  3. 反编译Unity3d 中的dll文件

    一.步骤实现 1.下载反编译工具,目前,我使用的是ILSpy,打开工具,得到如下界面 2.点击File后得到如下界面 3.单击 "打开" 按钮,选择Unity3d 安装目录下的dl ...

  4. 如何保护.net中的dll文件(防破解、反编译)

    .net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行.中间语言很容易被反编译,所以研究下如何有效的保护dll文件. ...

  5. vc6编译出小体积pe文件

    VC写的程序体积是挺大的,网上也有很多优化的文章,都是针对VC6.0来说的.我把我的总结下.   #include <windows.h> #pragma comment(lib,&quo ...

  6. 建立注册DLL和反注册DLL文件的快捷方式

    我们经常要注册或者反注册自己写的dll文件,加一个快捷方式会减少自己的工作量: [HKEY_CLASSES_ROOT/dllfile/shell/Unregister] "Command&q ...

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

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

  8. Jar包反编译后修改源码再编译

    Jar包反编译后修改源码再编译 文章目录 Jar包反编译后修改源码再编译 1. 场景 2. 详细步骤 2.1 查看源码 2.2 生成源文件 2.3 构建项目 2.4 编译成jar包 3. 参考链接 1 ...

  9. 初识Ildasm.exe——IL反编译的实用工具(转自Youngman)

    Ildasm.exe 概要: 一.前言: 微软的IL反编译实用程序--Ildasm.exe,可以对可执行文件(ex,经典的控制台Hello World 的 exe 可执行文件)抽取出 IL 代码,并且 ...

  10. 三、Android系统内核编译及刷机实战 (修改反调试标志位)

    前言 在 二.Android系统源码编译及刷机实战 一文中,我们成功编译了Android 4.4.4_r1源码并刷入系统了 Nexus 5 设备,下面是设置界面的信息.上面显示的内核版本信息是3.4. ...

最新文章

  1. 移动互联网的机会-从零创业,半年净赚50万?
  2. 查看mysql当前表使用的存储引擎(转)
  3. 解体症状---被封印的灵魂
  4. React Native开发环境搭建记录
  5. Python的global语句
  6. MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三
  7. 怎么导入sklearn包_4.5包
  8. 九种分布式ID生成方式
  9. IPtables终于可以使用了,客户机不可以上网的问题解决了
  10. 在茫茫决策树入门帖里,我强推这篇(附可视化图)
  11. HDU 6395 Sequence(分段矩阵快速幂)题解
  12. python静态地图_Matplotlib Toolkits:地图绘制工具
  13. IOS开发之——屏幕适配-AutoLayout动画(05)
  14. gridview的sort_asp.net GridView排序简单实现
  15. 小白操作Win10扩充C盘(把D盘内存分给C盘)亲测多次有效
  16. [渝粤教育] 西南科技大学 计算机组成原理 在线考试复习资料
  17. android 短信字体,安卓短信字体 安卓短信字体大小设置
  18. dhl寄件邮编错了_如果从国外邮寄DHL往中国.邮编怎么写?
  19. 计算机图形学椭圆_椭圆算法| 计算机图形学
  20. 【Excel神技】之 工作表区域保护

热门文章

  1. 格雷码与二进制码之间的相互转换
  2. Python读写txt文件
  3. 终于找到了无毒版的fences1.0(2.0版本要收费的)
  4. 【强档推荐】动漫初音未来Ⅱ主题
  5. 【BIM入门实战】Navisworks2018简体中文安装教程(附安装包下载)
  6. windows cmd命令行添加mysql环境变量
  7. 利用matlab将位图转为SVG矢量图
  8. hive sql 行列转换
  9. 算法导论随笔(十四):NP完全性之P问题、NP问题、NPC问题和NP难问题
  10. linux平台使用doxygen生成项目文档