读取和写入 .NET 程序集和模块
首先,重要的命名空间是 dnlib.DotNet 和 dnlib.DotNet.Emit。如果您打算读取/写入方法体,则只需要 dnlib.DotNet.Emit。下面的所有示例都假定您在每个源文件的顶部都有相应的使用声明:
using dnlib.DotNet;
using dnlib.DotNet.Emit;ModuleDefMD 是打开 .NET 模块时创建的类,它具有多个 Load() 方法,这些方法会创建一个 ModuleDefMD 实例。如果不是 .NET 模块/程序集,将抛出 BadImageFormatException 异常。
从文件中读取 .NET 模块:
// Create a default assembly resolver and type resolver and pass it to Load().
// If it's a .NET Core assembly, you'll need to disable GAC loading and add
// .NET Core reference assembly search paths.
ModuleContext modCtx = ModuleDef.CreateModuleContext();
ModuleDefMD module = ModuleDefMD.Load(@"C:\path\to\file.exe", modCtx);从字节数组中读取 .NET 模块:
暂无开放 Issues,或尚未同步最近议题。