Table of Contents

Namespace AsmResolver.PE.DotNet.Metadata.Tables

Classes

IndexEncoder

Provides a mechanism for translating between metadata tokens and coded indices.

MetadataTable<TRow>

Provides a base implementation of a metadata table in the table stream of a managed executable file.

SerializedMetadataTable<TRow>

Provides an implementation of a metadata table that was serialized to a PE file.

TableIndexExtensions

Provides extension methods to the TableIndex enumeration.

TypeReferenceHash

Provides an implementation for the Type Reference Hash (TRH) as introduced by GData. This hash is used as an alternative to the ImpHash to identify malware families based on the type references imported by the .NET image.

Reference: https://www.gdatasoftware.com/blog/2020/06/36164-introducing-the-typerefhash-trh

Structs

AssemblyDefinitionRow

Represents a single row in the assembly definition metadata table.

AssemblyOSRow

Represents a single row in the assembly operating system metadata table.

AssemblyProcessorRow

Represents a single row in the assembly processor metadata table.

AssemblyRefOSRow

Represents a single row in the assembly reference operating system metadata table.

AssemblyRefProcessorRow

Represents a single row in the assembly reference processor metadata table.

AssemblyReferenceRow

Represents a single row in the assembly definition metadata table.

ClassLayoutRow

Represents a single row in the class layout metadata table.

ColumnLayout

Provides a description of a single column in a metadata table.

ConstantRow

Represents a single row in the constants metadata table.

CustomAttributeRow

Represents a single row in the custom attribute metadata table.

CustomDebugInformationRow

Represents a single row in the Portable PDB custom debug information metadata table.

DocumentRow

Represents a single row in the Portable PDB Document metadata table.

EncLogRow

Represents a single row in the Edit-and-Continue log metadata table.

EncMapRow

Represents a single row in the Edit-and-Continue remap metadata table.

EventDefinitionRow

Represents a single row in the event map metadata table.

EventMapRow

Represents a single row in the event map metadata table.

EventPointerRow

Represents a single row in the event pointer metadata table.

ExportedTypeRow

Represents a single row in the exported type metadata table.

FieldDefinitionRow

Represents a single row in the field definition metadata table.

FieldLayoutRow

Represents a single row in the field layout metadata table.

FieldMarshalRow

Represents a single row in the field marshal metadata table.

FieldPointerRow

Represents a single row in the field pointer metadata table.

FieldRvaRow

Represents a single row in the implementation map metadata table.

FileReferenceRow

Represents a single row in the file metadata table.

GenericParameterConstraintRow

Represents a single row in the generic parameter metadata table.

GenericParameterRow

Represents a single row in the generic parameter metadata table.

ImplementationMapRow

Represents a single row in the implementation map metadata table.

ImportScopeRow

Represents a single row in the Portable PDB import scope metadata table.

InterfaceImplementationRow

Represents a single row in the interface implementation metadata table.

LocalConstantRow

Represents a single row in the Portable PDB local constant metadata table.

LocalScopeRow

Represents a single row in the Portable PDB local scope metadata table.

LocalVariableRow

Represents a single row in the Portable PDB local variable metadata table.

ManifestResourceRow

Represents a single row in the manifest resource metadata table.

MemberReferenceRow

Represents a single row in the member reference metadata table.

MetadataRange

Represents a range of metadata tokens, indicated by a starting and ending row identifier within a metadata table.

MetadataRange.Enumerator

Represents an enumerator that enumerates all metadata tokens within a token range.

MetadataRowColumnEnumerator

Provides a mechanism for enumerating all column cells in a row of a metadata table.

MetadataToken

Represents a metadata token, referencing a member using a table and a row index.

MethodDebugInformationRow

Represents a single row in the Portable PDB Document metadata table.

MethodDefinitionRow

Represents a single row in the method definition metadata table.

MethodImplementationRow

Represents a single row in the method implementation metadata table.

MethodPointerRow

Represents a single row in the method pointer metadata table.

MethodSemanticsRow

Represents a single row in the method semantics metadata table.

MethodSpecificationRow

Represents a single row in the method specification metadata table.

ModuleDefinitionRow

Represents a single row in the module definition metadata table.

ModuleReferenceRow

Represents a single row in the module definition metadata table.

NestedClassRow

Represents a single row in the nested class metadata table.

ParameterDefinitionRow

Represents a single row in the parameter definition metadata table.

ParameterPointerRow

Represents a single row in the parameter pointer metadata table.

PropertyDefinitionRow

Represents a single row in the property definition metadata table.

PropertyMapRow

Represents a single row in the property map metadata table.

PropertyPointerRow

Represents a single row in the property pointer metadata table.

SecurityDeclarationRow

Represents a single row in the security declaration metadata table.

StandAloneSignatureRow

Represents a single row in the stand-alone signature metadata table.

StateMachineMethodRow

Represents a single row in the Portable PDB state machine method metadata table.

TableLayout

Provides a description of the layout of a table in the tables metadata stream. This includes information about the name, data type and size in bytes of each column.

TypeDefinitionRow

Represents a single row in the type definition metadata table.

TypeReferenceRow

Represents a single row in the type reference metadata table.

TypeSpecificationRow

Represents a single row in the type specification metadata table.

Interfaces

IMetadataRow

Represents a single row in a metadata table.

IMetadataTable

Represents a metadata table stored in the tables stream of a managed executable.

Enums

AssemblyAttributes

Provides members defining all possible flags that can be assigned to an assembly definition or reference.

AssemblyHashAlgorithm

Provides members defining all hash algorithms that can be used to hash public keys of assemblies.

CodedIndex

Provides members defining all coded indices that can appear in the tables stream.

ColumnType

Provides all possible data types that a single cell in a metadata table can contain.

DeltaFunctionCode

Provides members defining all operations that can be performed during an edit-and-continue session.

ElementType

Provides members defining all element types that can be used to indicate the type of a blob signature or constant.

EventAttributes

Provides members defining all flags that can be associated to an event definition.

FieldAttributes

Provides members defining all flags that can be associated to a field definition.

FileAttributes

Provides members defining all flags that can be assigned to a file reference.

GenericParameterAttributes

Provides members defining all flags that can be assigned to a generic parameter.

ImplementationMapAttributes

Provides members defining all possible flags that can be assigned to a P/Invoke implementation mapping.

LocalVariableAttributes

Provides members defining all possible flags that can be assigned to a local variable.

ManifestResourceAttributes

Provides members defining all flags that can be assigned to a manifest resource.

MethodAttributes

Provides members defining all flags that can be assigned to a method definition.

MethodImplAttributes

Provides members defining all flags that dictate the implementation of a method body.

MethodSemanticsAttributes

Provides members defining all flags that can be assigned to a method semantics row.

ParameterAttributes

Provides members defining all flags that can be assigned to a parameter definition.

PropertyAttributes

Provides members defining all flags that can be assigned to a property definition.

SecurityAction

Provides members defining all possible flags that can be assigned to a security declaration attribute.

TableIndex

Provides members defining all metadata tables that can be present in a tables stream.

TypeAttributes

Provides members defining all flags that can be assigned to a type definition.

Delegates

SerializedMetadataTable<TRow>.ReadRowDelegate

Defines a method that reads a single row from an input stream, using the provided table layout.

SerializedMetadataTable<TRow>.ReadRowExtendedDelegate

Defines a method that reads a single row from an input stream, using the provided table layout.