Поделиться через


PEHeader Класс

Определение

Представляет заголовок переносимого исполняемого файла (PE).

public ref class PEHeader sealed
public sealed class PEHeader
type PEHeader = class
Public NotInheritable Class PEHeader
Наследование
PEHeader

Примеры

В этом примере показано, как считывать сведения из заголовка PE:

// Open the Portable Executable (PE) file
using var fs = new FileStream(@"Example.dll", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
using var peReader = new PEReader(fs);

// Display PE header information
if (peReader.PEHeaders.PEHeader is PEHeader header)
{
    Console.WriteLine($"Image size, bytes:   {header.SizeOfImage}");
    Console.WriteLine($"Image base:          0x{header.ImageBase:X}");
    Console.WriteLine($"File alignment:      0x{header.FileAlignment:X}");
    Console.WriteLine($"Section alignment:   0x{header.SectionAlignment:X}");
    Console.WriteLine($"Subsystem:           {header.Subsystem}");
    Console.WriteLine($"Dll characteristics: {header.DllCharacteristics}");
    Console.WriteLine($"Linker version:      {header.MajorLinkerVersion}.{header.MinorLinkerVersion}");
    Console.WriteLine($"OS version:          {header.MajorOperatingSystemVersion}.{header.MinorOperatingSystemVersion}");
}

Комментарии

Формат заголовка pe-файла определяется спецификацией PE. Этот класс используется свойством PEHeader .

Свойства

AddressOfEntryPoint

Возвращает адрес точки входа относительно базового адреса образа при загрузке PE-файла в память.

BaseOfCode

Возвращает адрес раздела начала кода относительно базового адреса образа при загрузке образа в память.

BaseOfData

Возвращает адрес раздела начала данных относительно базового адреса образа при загрузке образа в память.

BaseRelocationTableDirectory

Возвращает запись таблицы базовых перемещений.

BoundImportTableDirectory

Возвращает запись Привязанная таблица импорта.

CertificateTableDirectory

Возвращает запись таблицы сертификатов, указывающую на таблицу сертификатов атрибутов.

CheckSum

Возвращает контрольную сумму файла образа.

CopyrightTableDirectory

Возвращает запись Таблицы авторских прав.

CorHeaderTableDirectory

Возвращает запись таблицы заголовков CLI.

DebugTableDirectory

Возвращает запись "Таблица отладки".

DelayImportTableDirectory

Возвращает запись импорта таблицы Delay-Load.

DllCharacteristics

Возвращает характеристики библиотеки динамической компоновки.

ExceptionTableDirectory

Возвращает запись таблицы исключений.

ExportTableDirectory

Возвращает запись Экспорт таблицы.

FileAlignment

Возвращает коэффициент выравнивания (в байтах), используемый для выравнивания необработанных данных разделов в файле образа.

GlobalPointerTableDirectory

Возвращает запись таблицы глобальных указателей.

ImageBase

Возвращает предпочтительный адрес первого байта образа при его загрузке в память.

ImportAddressTableDirectory

Возвращает запись Импорт таблицы адресов.

ImportTableDirectory

Возвращает запись Импорт таблицы.

LoadConfigTableDirectory

Возвращает запись "Загрузка таблицы конфигурации".

Magic

Возвращает значение, указывающее формат файла образа.

MajorImageVersion

Возвращает основной номер версии образа.

MajorLinkerVersion

Возвращает основной номер версии компоновщика.

MajorOperatingSystemVersion

Возвращает основной номер версии требуемой операционной системы.

MajorSubsystemVersion

Возвращает основной номер версии подсистемы.

MinorImageVersion

Возвращает дополнительный номер версии образа.

MinorLinkerVersion

Возвращает дополнительный номер версии компоновщика.

MinorOperatingSystemVersion

Возвращает дополнительный номер версии требуемой операционной системы.

MinorSubsystemVersion

Возвращает дополнительный номер версии подсистемы.

NumberOfRvaAndSizes

Возвращает число записей каталога данных в оставшейся части PEHeader. Каждая из них описывает расположение и размер.

ResourceTableDirectory

Возвращает запись таблицы ресурсов.

SectionAlignment

Возвращает выравнивание разделов (в байтах) при их загрузке в память.

SizeOfCode

Возвращает размер раздела кода (текста) или сумму всех разделов кода, если имеется несколько разделов.

SizeOfHeaders

Возвращает общий размер заглушки MS DOS, заголовка PE и заголовков разделов, округленный до числа, кратного FileAlignment.

SizeOfHeapCommit

Возвращает размер фиксируемого пространства в локальной куче.

SizeOfHeapReserve

Возвращает размер резервируемого пространства в локальной куче. Фиксируется только SizeOfHeapCommit. Остальная часть предоставляется по одной странице, пока не будет достигнут зарезервированный размер.

SizeOfImage

Возвращает размер образа (в байтах), включая все заголовки, при его загрузке в память.

SizeOfInitializedData

Возвращает размер инициализированного раздела данных или сумму всех таких разделов, если имеется несколько разделов данных.

SizeOfStackCommit

Возвращает размер фиксируемого стека.

SizeOfStackReserve

Возвращает размер резервируемого стека. Фиксируется только SizeOfStackCommit. Остальная часть предоставляется по одной странице, пока не будет достигнут зарезервированный размер.

SizeOfUninitializedData

Возвращает размер неинициализированного раздела данных (BSS) или сумму всех таких разделов, если имеется несколько разделов BSS.

Subsystem

Возвращает имя подсистемы, необходимой для выполнения этого образа.

ThreadLocalStorageTableDirectory

Возвращает запись таблицы хранилища Thread-Local.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к