Максимальный размер WIN64 PE-EXE (PE+)

dosprog

Ветеран
Мудрец
Сообщения
176
Реакции
545
Задался таким вопросом - есть ли ограничение размера 32 битами (4Gb max)
для исполняемых файлов WIN64 PE-EXE (PE+) ?

Судя по тому, что формат IMAGE_SECTION_HEADER у таких файлов такой же, как и у WIN32-PE,
где RAW-смещения и размеры секций 32-битные, - судя по этому
и весь размер PE-EXE для WIN64 не может превышать 4Gb в принцпе?

Кто-то сталкивался с такой постановкой задачи?
 

SDK

Ветеран
Ветеран
Сообщения
183
Реакции
37
dosprog я думаю максимальный размер exe будет ограничен оперативной памятью оно просто не запустится ,а так почему нет можно проверить создав самораспаковывающийся архив на 3.99Гб или разбить на части и подгружать.
в майкрософте говорили что ехе и dll свыше 4гб не запускаются.
 

f13nd

Постоянный
Мудрец
Сообщения
61
Реакции
358
Судя по тому, что формат IMAGE_SECTION_HEADER у таких файлов такой же, как и у WIN32-PE,
Там заголовки не совсем те же, но электрически совместимые https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-image_optional_header64
Так что да, в 32-битное поле без знака число больше 4294967295 не впишешь.
 

dosprog

Ветеран
Мудрец
Сообщения
176
Реакции
545
В файле WinNT.h присутствует только одно объявление IMAGE_SECTION_HEADER,
оно используется и для x32, и для x64
 
  • Понравилось
Реакции: SDK

rmn

Посетитель
Мудрец
Сообщения
32
Реакции
140
и весь размер PE-EXE для WIN64 не может превышать 4Gb в принцпе?
Ну, да. О чем и говорит 32-битный OptionalHeader::SizeOfImage и 32-битные rva практически во всех структурах pe-файлов вне зависимости от разрядности.
 

RamMerLabs

Ordo ab chao
Наставник
Сообщения
11
Реакции
10
Понимаю, что запоздал с ответом, но уточню на всякий случай:
Задался таким вопросом - есть ли ограничение размера 32 битами (4Gb max)
для исполняемых файлов WIN64 PE-EXE (PE+) ?
...Executable images (both DLLs and EXEs) are restricted to a maximum size of 2 gigabytes...
https://docs.microsoft.com/en-us/cpp/build/x64-software-conventions
Последний абзац
 
Верх Низ