![]()  | 
 
Рис. 1. Типовая структура PE файла
Типовая структура PE файла приведена на рисунке 1. В начале файла присутствует сигнатура и заголовок обыкновенного исполняемого файла MS-DOS. По смещению 3Ch хранится указатель на начало PE заголовка. Далее следует небольшая (как правило) программа, которая, в случае запуска под DOS выдаст сообщение о том, что программа способна работать только под управлением Windows. Эта программа называется «MS-DOS stub». Начало заголовка всегда выровнено на восьмибайтную границу. Заголовок состоит из двух частей: File Header и Optional Header. Первый имеет фиксированный размер. Размер второго указан в соответствующем поле в File Header. Структура File Header и Optional Header описана соответственно в таблицах 1 и 2. Optional Header для исполняемых файлов является обязательным, не смотря на его название. Начинается он с поля Magic Number. Если его значение равно 10Bh, файл имеет формат PE32. Наша программа работает только с ними.
Таблица 1. PEFileHeader
| 
   Смещение  | 
  
   Размер (байт)  | 
  
   Название поля  | 
  
   Описание  | 
 
| 
   0  | 
  
   2  | 
  
   MachineType  | 
  
   Число, идентифицирующее аппаратную платформу  | 
 
| 
   2  | 
  
   2  | 
  
   NumberOfSections  | 
  
   Количество секций в файле  | 
 
| 
   4  | 
  
   4  | 
  
   TimeDateStamp  | 
  
   Дата и время создания файла  | 
 
| 
   8  | 
  
   4  | 
  
   PointerToSymbolTable  | 
  
   Смещение символьной таблицы в файле  | 
 
| 
   12  | 
  
   4  | 
  
   NumberOfSymbols  | 
  
   Количество записей в символьной таблице  | 
 
| 
   16  | 
  
   2  | 
  
   SizeOfOptionalHeader  | 
  
   Размер Optional Header  | 
 
| 
   18  | 
  
   2  | 
  
   Characteristics  | 
  
   Флаги, описывающие свойства данного файла  | 
 
Некоторые термины, часто используемые при описании PE файлов, требуют пояснения. Виртуальный адрес — это адрес в 32-разрядном адресном пространстве данной программы. Относительный виртуальный адрес — это смещение в том же адресном пространстве относительно начала образа программы.
Таблица 2.PEOptionalHeader
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.