Overview

Note

The documentation has a new home: Check it out!

The .NET image layer is the third layer of abstraction of the portable executable (PE) file format. It provides a high-level abstraction of the .NET metadata stored in a PE image, that is similar to APIs like System.Reflection. Its root objects are AssemblyDefinition and ModuleDefinition, and from there it is possible to dissect the .NET assembly hierarchically.

In short, this means the following:

  • Assemblies define modules,
  • Modules define types, resources and external references,
  • Types define members such as methods, fields, properties and events,
  • Methods include method bodies,
  • … and so on.

The third layer of abstraction is the highest level of abstraction for a .NET assembly that AsmResolver provides. All objects exposed by this layer are completely mutable and can be serialized back to a IPEImage from the second layer, to a PEFile from the first layer, or to the disk.