Разработка приложения, способного защищать исполняемые файлы, страница 5

Смещение

Размер (байт)

Название поля

Описание

0

2

MagicNumber

Идентифицирует PE32 или PE32+ файлы

2

1

MajorLinkerVersion

Старшая часть номера версии линкера

3

1

MinorLinkerVersion

Младшая часть номера версии линкера

4

4

SizeOfCode

Суммарный размер секций кода

8

4

SizeOfInitializedData

Суммарный размер секций инициализированных данных

12

4

SizeOfUninitializedData

Суммарный размер секций неинициализированных данных

16

4

AddressOfEntryPoint

Виртуальный адрес точки входа в программу

20

4

BaseOfCode

Виртуальный адрес начала первой секции кода

24

4

BaseOfData

Виртуальный адрес начала первой секции данных

28

4

ImageBase

«Желательный» адрес для загрузки программы

32

4

SectionAlignment

Единица грануляции размера секций в памяти

36

4

FileAlignment

Единица грануляции размера секций в файле

40

2

MajorOperatingSystemVersion

Старшая часть требуемого номера версии ОС

42

2

MinorOperatingSystemVersion

Младшая часть требуемого номера версии ОС

44

2

MajorImageVersion

Старшая часть номера версии программы

46

2

MinorImageVersion

Младшая часть номера версии программы

48

2

MajorSubsystemVersion

Старшая часть номера версии подсистемы

50

2

MinorSubsystemVersion

Младшая часть номера версии подсистемы

52

4

Reserved

Не используется

56

4

SizeOfImage

Размер в байтах образа программы в памяти вместе со всеми заголовками (кратен Section Alignment)

60

4

SizeOfHeaders

Общий размер программы stub, PE заголовка и заголовков секций «округлённый» до File Alignment

64

4

CheckSum

Контрольная сумма образа программы

68

2

Subsystem

Идентифицирует требуемый тип подсистемы (GUI, Console и т. д.)

70

2

DLL Characteristics

Флаги свойств DLL

72

4

SizeOfStackReserve

Максимальный размер стека в байтах

76

4

SizeOfStackCommit

Минимальный размер стека в байтах

80

4

SizeOfHeapReserve

Максимальный размер кучи в байтах

84

4

SizeOfHeapCommit

Минимальный размер кучи в байтах

88

4

LoaderFlags

Без комментариев

92

4

NumberOfRvaAndSizes

Количество записей в Data Directories

В конце PE заголовка находятся Data Directories. Это список 32-разрядных относительных виртуальных адресов и 32-разрядных размеров областей программы, имеющих системное значение. Количество записей в этом списке указано в Optional Header. Записи располагаются в определённом порядке, описанном в таблице 3.

Таблица 3.DataDirectories

Смещение

Размер (байт)

Название

96

8

Export Table

104

8

Import Table

112

8

Resource Table

120

8

Exception Table

128

8

Certificate Table

136

8

Base Relocation Table

144

8

Debug

152

8

Architecture

160

8

Global Ptr

168

8

TLS Table

176

8

Load Config Table

184

8

Bound Import

192

8

IAT

200

8

Delay Import Descriptor

208

8

COM+ Runtime Header

216

8

Reserved