IMAGE_FILE_HEADER
Я дам краткое описание (резюме того, что сказал в своем прекрасном документе о формате PE-файла Мэтт Питрек) полей IMAGE_FILE_HEADER.
¤ PE\0\0:
Это метка, которая есть у каждого PE-файла. Просто проверяйте ее существование при заражении файла. Если метки нет, то это не PE-файл, ок?
¤ Машина:
Так как компьютером, который мы используем может быть несовместим с PC (теоретически), а PE-файлы могут быть и на таких компьютерах, в этом поле указывается тип машины, для которой предназначается приложение. Это может быть одно из следующих значений:
IMAGE_FILE_MACHINE_I386 equ 14Ch ; Intel 386. IMAGE_FILE_MACHINE_R3000 equ 162h ; MIPS little-endian,160h big-endian IMAGE_FILE_MACHINE_R4000 equ 166h ; MIPS little-endian IMAGE_FILE_MACHINE_R10000 equ 168h ; MIPS little-endian IMAGE_FILE_MACHINE_ALPHA equ 184h ; Alpha_AXP IMAGE_FILE_MACHINE_POWERPC equ 1F0h ; IBM PowerPC Little-Endian
¤ Количество секций:
Это поле играет важную роль при заражении. Оно сообщает, сколько секций в файле.
¤ Временной штамп:
Содержит количество секунд, которое прошло с декабря 31-ого 1969 года с 4:00 до того момента, когда файл был слинкован.
¤ Указатель на таблицу символов
Не интересно, поскольку используется только в OBJ-файлах.
¤ Количество символов:
Не интересно, поскольку используется только в OBJ-файлах.
¤ Размер опционального заголовка:
Содержит количество байтов, которое занимает IMAGE_OPTIONAL_HEADER (смотри описание
¤ Характеристики:
Флаг дает нам еще кое-какую информацию о файле. Нам это не интересно.