html

среда, 8 февраля 2012 г.

Заголовок NTHeader в PE файле

0. Заголовок файла PE  состоит из заголовка  MS -DOS  в самом начале файла  и из NT заголовка (NTHeader). NT заголовок (NTHeader), в свою очередь состоит из сигнатуры PE файла (Signature), заголовка файла (FileHeader) и опционального заголовка (OptionalHeader).

1. Заголовок файла NT   подробно расписан в файле Windows.pas комплекта Delphi 7.0:

-----------------------
type
  PImageNtHeaders = ^TImageNtHeaders;
  _IMAGE_NT_HEADERS = packed record
    Signature: DWORD;
    FileHeader: TImageFileHeader;
    OptionalHeader: TImageOptionalHeader;
  end;
  {$EXTERNALSYM _IMAGE_NT_HEADERS}
  TImageNtHeaders = _IMAGE_NT_HEADERS;
  IMAGE_NT_HEADERS = _IMAGE_NT_HEADERS;
  {$EXTERNALSYM IMAGE_NT_HEADERS}
-----------------------

2. Заголовок файла (FileHeader)  также расписан в файле Windows.pas комплекта Delphi 7.0:
-----------------------
  PImageFileHeader = ^TImageFileHeader;
  _IMAGE_FILE_HEADER = packed record
    Machine: Word;
    NumberOfSections: Word;
    TimeDateStamp: DWORD;
    PointerToSymbolTable: DWORD;
    NumberOfSymbols: DWORD;
    SizeOfOptionalHeader: Word;
    Characteristics: Word;
  end;
  {$EXTERNALSYM _IMAGE_FILE_HEADER}
  TImageFileHeader = _IMAGE_FILE_HEADER;
  IMAGE_FILE_HEADER = _IMAGE_FILE_HEADER;
  {$EXTERNALSYM IMAGE_FILE_HEADER}
-----------------------
3. Значение каждого поля можно посмотреть в техническом описании  Microsoft  и в статье ФОРМАТ ИСПОЛНЯЕМЫХ ФАЙЛОВ PortableExecutables (PE), написанной Hard Wisdom  (она на русском языке)

Окно программы
4. Написал программу, которая определяет, является ли данный файл PE файлом и выводит сигнатуру PE файла (Signature),  и заголовок файла (FileHeader) .В дальнейшем, после последующего развития, эта программа пригодится при написании упаковщика или криптора PE-файла.

5. Программу с исходниками, а  также с дополнительными файлами - файлом Windows.pas ,статьей ФОРМАТ ИСПОЛНЯЕМЫХ ФАЙЛОВ PortableExecutables (PE) написанной Hard Wisdom  и спецификациями Microsoft для PE-файлов версий 8.0,8.1 и 8.2 (094_pecoff_v8.pdf, pecoff_v8.doc , pecoff_v8.pdf )  скачать можно здесь : NTHeader.rar

6 Полезные ссылки 
--  Формат исполняемого файла ОС Windows - http://vxheavens.com/lib/vbp01.html#c2
Хорошо объяснен формат PE файла. Статья на русском . Лучше чем  статья  Hard Wisdom ФОРМАТ ИСПОЛНЯЕМЫХ ФАЙЛОВ PortableExecutables (PE)

Комментариев нет: