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) |