问题标签 [mono.cecil]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1713 浏览

c# - CCI vs. Mono.Cecil——优缺点

我看过讨论这两个类似框架的文章,但大多数都是两年左右的时间。我认为这两个项目现在都比两年前成熟得多,情况也更加复杂。

因此,鉴于每个库的当前状态,我希望有人可以详细解释每个库的优缺点,目前应该首选哪个。

0 投票
1 回答
864 浏览

c# - BaseType 的 Mono.Cecil 模块不正确

我正在使用 AssembliyDefinition.ReadAssembly 加载两个程序集

在 AssemblyA 中,我定义了 ClassA。

在 AssemblyB 中,我定义了 ClassB:ClassA。

当我检查 ClassB 的 TypeDefinition.BaseType 时,我发现它的模块是 AssemblyB。

我希望它的模块是 AssemblyA,因为 ClassB 的基本类型是 ClassA,并且它是在 AssemblyA 中定义的。

这对我来说显示为一个错误,因为当我尝试执行 classB.BaseType.Resolve() 时出现错误,这可能是因为它在错误的程序集中搜索 ClassA。

有什么想法吗?

谢谢

0 投票
1 回答
12607 浏览

c# - 如何以编程方式替换 .NET 程序集中的嵌入式资源?

我正在尝试使用 C# 代码替换 exe(.NET、C#)文件的资源。

我找到了这篇文章并制作了这段代码(使用 Mono.Cecil 0.6):

该代码实际上是删除资源,然后添加一个具有相同名称的新资源。资源名称encFile存储为encFile.exe(都尝试过)。

我测试了代码并且删除正在工作(我可以通过文件的大小来判断)和添加,但是新文件崩溃就像我只使用删除创建的文件(用于测试)一样 - 它的行为就像他看不到被替换的资源。

我能做些什么来解决它?也许在编辑的 EXE 文件中有一些变化?EXE 文件以这种方式读取其资源:

byte[] buffer = ProjectName.Properties.Resources.encFile;

0 投票
1 回答
848 浏览

c# - 使用 Mono.Cecil 将索引器添加到 TypeDefinition

我正在使用 JB Evain 的 Mono.Cecil 对已编译的 DLL 执行一些字节码操作。该项目的一部分是将属性注入 TypeDefinitions,使用 PropertyDefinitions 有效地将编译的 getter/setter 转换为 C# Properties 模式。这部分运作良好。

但是,我想向 TypeDefinition 添加一个索引器,但我找不到任何关于如何最好地实现这一点的文档或建议。将用于处理索引请求的方法已经到位:

我需要做的就是添加元数据以将它们转换为索引器......

任何想法/想法将不胜感激!

0 投票
2 回答
3648 浏览

c# - cecil:Instruction.Operand 类型对应 Instruction.OpCode.Code 值

是否有任何文档或 cecil 源代码的一部分,我可以查阅以全面了解Operandcecil 将用于给定Code值的类型?例如:我可以从中收集到MethodBodyRocks一个Ldlocof Operandtype VariableDefinition,但我无法找到其他一些指令代码。

0 投票
2 回答
1320 浏览

c# - 需要帮助使用 Mono.Cecil 创建一个简单的混淆器

就像标题说的我在使用 Mono.Cecil 时需要帮助......我想用它来制作一个简单的混淆器(尽管我知道它们不是简单的 lmfao,但我很确定我能做到)

我没有混淆的经验,所以基本上有人可以给我一个简单的例子来说明如何使用 Mono.Cecil 加密变量和签署程序集吗?

这是我到目前为止所做的:

0 投票
1 回答
3173 浏览

c# - Mono Cecil - 初始化局部变量

我有以下方法:

我想用 Mono Cecil 修改这段代码。我想在方法中创建一个自定义类的实例:

目前我使用以下代码:

应用这些更改后,程序无效且无法执行。如果我使用“IL DASM”查看生成的代码,则缺少以下语句:

IL的其余部分都是一样的,就好像我直接编译了完整的代码一样。任何想法我做错了什么?

0 投票
1 回答
669 浏览

c# - 在 Mono.Cecil 中创建事件

我一直在尝试使用 Mono.Cecil 创建事件,但不确定如何。

我被困在插件和删除部分。请帮我。

0 投票
1 回答
753 浏览

c# - 如何在 Mono.Cecil 中创建导出函数?

我究竟做错了什么?我正在尝试创建 LoadLibraryA 的导出函数并将其注入程序集中。

0 投票
1 回答
1272 浏览

c# - Mono.Cecil 是否负责分支机构等位置?

那么这个问题可能看起来很奇怪,但它很简单 - 我的意思是如果我在反编译的代码中有一个“goto”(brtrue等),比如例子

我在该 **** 调用之后添加一个命令,将 br 置于顶部,使其像应有的那样或该代码。

塞西尔是自己做还是我必须照顾所有这些分支?:/ 修复它们并不难,但如果 Cecil 没有,那么我根本不会启动这个项目,我没有时间(或知识)学习高级 IL 魔法:P

(是的,我知道它不会是 IL_0003,它只是举例)