Приветствую. В РЕ-заголовке есть несоколько полей, в которые прописываются различные версии. Это старшая и младшие версии линкера, os, subsystem и image version (извиняюсь, если какие-то поля по-другому называются). Так вот, столкнулся недавно с такой проблемой, что оказывается эти поля могут содержать далеко не все значения. Например, при старшей версии ос = 5, а subsystem = 6 файл признавался невалидным. Другие цифры просто не помню. Собсно вопрос: где-нибудь выписаны правила, какие значение могут принимать эти поля? Если да, то куда копать?
Версия линкера значения не имеет, заполнять или не заполнять её решает сам линкер. А вот про поле subsystem нуна знать. 0000h - Unknown 0001h - Native 0002h - Windows GUI 0003h - Windows Console 0005h - OS/2 Console 0007h - Posix Console 0008h - Native Windows9x driver 0009h - Windows CE и т.д. Т.е под виндой запустятся файлы с subsystem=0002h или 0003h, остальные она грузить не будет сам нав. понимаешь почему.
ну если там есть описание того, какие версии и чему должны соостветствовать, то был бы признателен за ссылочку в личку. А просто спецификаций у меня у самого как грязи
Версии OS, subsystem: а что тут непонятного? Версии ОС и подсистемы соответственно. Для console и GUI cовпадают вроде всегда.
ты вопрос читал? ладно, спрошу по-другому: какого винни пуха винда назвала файл невалидным, когда major os version = 5, а major subsys version = 6? Для тех, кому лень читать мой вопрос, уточню, что я спрашиваю про поля по смещениям +40h и +48h от начала PE, а НЕ про поле SubSystem по смещению +5Ch - это поле меня совершенно не интересует.
виста, хп на 2к не помню. Точные номера версий при которых был креш тоже не скажу, т.к. сейчас этих файлов уже нет под рукой. Но то, что половина упакованных файлов после таких вот изменений версий падала - это факт
Так. Версию OS игнорируют 98, 2K и XP (тестовый файл по крайней мере запускается). 98 требует версию subsystem <= 4.10, 2K, соответственно, 5.00 и XP, соответственно 5.x. В XP ещё требует минимальный subsystem (3.10 вроде), а 98 проглотит даже нули. Версиями образа и линкера, имхо, может интересоваться только линкер. ЗЫ (отмазка): осторожно, в посте всё равно бред.