【发布时间】:2020-08-31 20:41:25
【问题描述】:
我想用 Mono.Cecil 做一个小示例代码 目标是操纵 IL。 方法 X 确实在控制台上打印了一些东西。为了测试对 IL 代码的操作,我从方法中删除了所有指令。但是当我运行 External2.dll 时,仍然会打印控制台输出(但是从 External2.dll 中删除了执行控制台输出的说明)。我该如何解决这个问题?
var module = ModuleDefinition.ReadModule("External.dll");
var types = module.Types;
foreach (var type in types) {
foreach (var method in type.Methods) {
if (method.Name == "X") {
Console.WriteLine(method.Body.Instructions.Count);
method.Body.Instructions.Clear();
Console.WriteLine(method.Body.Instructions.Count);
}
}
}
module.Write("External2.dll");
【问题讨论】:
标签: c# .net mono cil mono.cecil