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)
Комментариев нет:
Отправить комментарий