1

Я рассмотрел размер двух двоичных файлов PE, оба из которых кратны 256 байтам, но я не уверен, является ли это стандартом PE или только для окон?

2 ответа2

2

Размер или размер на диске?

Размер - это количество байтов, которые фактически содержит файл.

Размер на диске - это количество байтов, которое файл должен использовать на вашем диске. Обычно это больше, потому что он должен округлять до кратного размера кластера (альтернативно называемой единицей размещения) этого раздела / диска. Обычно это будет кратный размеру сектора вашего диска, который обычно составляет 512 байт для большинства современных магнитных жестких дисков.

Размер кластера обычно составляет 4 КБ по умолчанию - в зависимости от ОС, файловой системы и размера диска - но вы обычно можете определить размер, используемый при форматировании диска / раздела.
Обратитесь к этой статье Microsoft KB за информацией о размерах по умолчанию в большинстве своих ОС.

Это означает, что 1-байтовый файл должен будет занимать размер всего 1 кластера, поскольку кластер может содержать только один файл, независимо от того, занимает ли этот файл только крошечную часть кластера.

2

Я не могу найти в Интернете никаких указаний на то, что двоичный файл PE должен быть кратным 256 байтам, и это кажется маловероятным.

В качестве контрапункта я посмотрел excel.exe на моем текущем компьютере (из Office 2003), который опровергает эту теорию.

Размер файла:
10 095 808 (9,62 МБ)
Не делится на 256 (результат деления на 39436,75).

PE Binary? Да:
Начинается с идентификатора MZ , первая строка (чтение в блокноте!) содержит ожидаемый This program cannot be run in DOS mode. строка. Этот раздел предназначен для безопасного отклонения DOS (как в самом DOS, а не командной строке Windows) от запуска двоичного файла без сбоев.

Содержит идентификатор PE примерно в байте 295 (опять же, читая в блокноте, прошу прощения за любую неточность). Это где выполнение начнется во всех совместимых ОС.

PS: большинство (все?) 32-битные исполняемые файлы в современных Windows имеют формат PE.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .