使用Mono.Cecil对目标.NET的DLL程序进行IL修改后保存时报“Failed to resolve assembly: ' xxxxxx, version=xxxxx,Culture=xxxxx,PublicKeyToken=xxxxxxx'"异常。

使用DNSPY进行调试,原来是因为修改的目标DLL和本身程序不在同一个目录,当需要用到目标DLL引用的DLL时Mono.Cecil只在自身所在的目录进行搜索匹配,

找不到对应的DLL文件就会报上面的异常信息。

解决方法有两种:

第一个:只要将对应的DLL拷贝到程序自身所在目录即可解决。

第二个:在程序里增加Mono.Cecil可以搜索的目标目录。

            DefaultAssemblyResolver resolver = new DefaultAssemblyResolver();
resolver.AddSearchDirectory(info.DirectoryName); // 增加目标目录 ReaderParameters parameters = new ReaderParameters()
{
AssemblyResolver = resolver, // 将增加好目标目录的对象作为参数给AssemblyResolver
ReadSymbols = false,
}; AssemblyDefinition asm = AssemblyDefinition.ReadAssembly(file, parameters); // 使用上面的参数即可完成对目标目录的指定及搜索

  

Mono.Cecil 修改目标.NET的IL代码保存时报异常的处理。的更多相关文章

  1. Mono.Cecil - 0.6

    原文:Mono.Cecil - 0.6 项目地址:Mono.Cecil 项目描述:In simple English, with Cecil, you can load existing manage ...

  2. Mono.Cecil 初探(一):实现AOP

    序言 本篇文章介绍基于Mono.Cecil实现静态AOP的两种方式:无交互AOP和交互式AOP. 概念介绍 Mono.Cecil:一个可加载并浏览现有程序集并进行动态修改并保存的.NET框架. AOP ...

  3. 基于Mono.Cecil的静态注入

    Aop注入有2种方式:动态注入和静态注入,其中动态注入有很多实现了 动态注入有几种方式: 利用Remoting的ContextBoundObject或MarshalByRefObject. 动态代理( ...

  4. 利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习)

    原文 利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习) Mono.Cecil是一个强大的MSIL的注入工具,利用它可以实现动态创建程序集,也可以实现拦截器横向切入动态方法,甚至还 ...

  5. 教你怎么用Mono Cecil - 动态注入 (注意代码的注释)

    原文 教你怎么用Mono Cecil - 动态注入 (注意代码的注释) 使用 Mono Cecil 进行反编译:using Mono.Cecil; using Mono.Cecil.Cil; //.. ...

  6. 用ildasm/ilasm修改IL代码

    原文地址:http://www.cnblogs.com/dudu/archive/2011/05/17/ildasm_ilasm_il.html 在开发中遇到这样一个场景,需要修改一个dll文件(.N ...

  7. 用ildasm/ilasm修改IL代码(操作步骤)

    在开发中遇到这样一个场景,需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码. 操作步骤如下: 1. 运行ildasm ildasm是由微软提供的.NET程序 ...

  8. 如何通过ildasm/ilasm修改assembly的IL代码

    原文地址:http://kb.cnblogs.com/page/101162/ 这段时间为跟踪一个Bug而焦头烂额,最后发现是Framework的问题,这让人多少有些绝望.所以到微软论坛提了个帖子,希 ...

  9. c# Mono.Cecil IL方式 读MethodBody

    using Kufen.Common.Definitions; using Mono.Cecil; using System; using System.Collections.Generic; us ...

随机推荐

  1. Openwrt VLAN Configure(2)

    1      Scope of Document This document describes vlan design on nodewrt2p 2      Requiremen 2.1     ...

  2. 快速切题 poj1573

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10708   Accepted: 5192 Des ...

  3. spoj375

    题解: 树链剖分的模板题 具体代码详见网上的其他代码 代码: #include<cstdio> #include<cmath> #include<cstring> ...

  4. 去除 DBGridEh SelectedRows里无效的书签

    数据集处于过滤状态,然后选中几个记录,再修改了这些记录中的某个字段(和过滤条件有关),导致那几个记录不符合过滤条件,不显示了.但是SelectedRows里 还保存着.如果不删除SelectedRow ...

  5. MyEclipse持续性开发教程:用JPA和Spring管理数据(一)

    MyEclipse开年钜惠 在线购买低至75折!立即开抢>> [MyEclipse最新版下载] 本教程介绍了MyEclipse中的一些基于JPA / Spring的功能.有关设置JPA项目 ...

  6. windows开机自动登录

     控制台输入control userpasswords2 ,去掉下图中的√,输入登陆所用用户名密码即可.

  7. [LeetCode&Python] Problem 807. Max Increase to Keep City Skyline

    In a 2 dimensional array grid, each value grid[i][j] represents the height of a building located the ...

  8. 实验吧—密码学——WP之 传统知识+古典密码

    仔细读题,发现有价值的信息: 几个不同的年份:“+甲子”:key值结构 首先我们并不知道这些年份在这里代表着什么,那么我们就去百度一下发现了如下所示的六十甲子顺序表 而在表中每个年份前都有数字,将他们 ...

  9. linux内核空间和用户空间详解

    linux驱动程序一般工作在内核空间,但也可以工作在用户空间.下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们.Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Li ...

  10. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.2 auto-focus

    转载至:https://blog.csdn.net/wo541075754/article/details/75349556 auto-focus 在agenda-group章节,我们知道想要让Age ...