C# 反编译修改dll文件

下面是修改IL文件然后重新生成DLL 的步骤,适用于dll文件没有源码,但是需要修改一点点的小改动

问:为啥不直接用dnspy进行修改?
答:我这边需要修改.net2.0上编译的一个库,用dnspy反编译后修改了代码,运行反倒有问题,因此怀疑通过dnspy修改库最后的编译环境和原有库的编译环境不一致,考虑到dnspy自身需要.net4.0以上环境才能运行,所以这里采用修改IL文件的方法

  1. 微软的工具ildasm.exe:这个是把DLL生成IL文件的一个软件,是微软自带了;安装不同的.net环境会有不同的版本,win10一般自带.net4.6版本,主要注意的是win10 安装.net2.0 和.net3.0 费劲,这两个版本的可以找个win7的虚拟机安装后查找
    在这里插入图片描述

  2. 微软的工具ilasm.exe:这个是把IL文件重新生成DLL的功能;
    在这里插入图片描述

  3. 利用dnspy 反编译看看dll的原代码是什么.net版本,也可以利用它进行源码分析,定位到要修改的位置
    在这里插入图片描述

  4. 根据原dll的版本选择相应的ildasm.exe 和 ilasm.exe 工具,
    ildasm的使用
    在这里插入图片描述
    ilasm.exe的使用
    先浏览到IL文件路径下,在cmd里输入下面命令

    ilasm[或者为ilasm.exe的绝对路径] test.il /dll /resource:test.res /output:test.dll
    

    在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值