Номера версий в полях РЕ

Тема в разделе "WASM.WIN32", создана пользователем MSoft, 18 фев 2009.

  1. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Приветствую.
    В РЕ-заголовке есть несоколько полей, в которые прописываются различные версии. Это старшая и младшие версии линкера, os, subsystem и image version (извиняюсь, если какие-то поля по-другому называются). Так вот, столкнулся недавно с такой проблемой, что оказывается эти поля могут содержать далеко не все значения. Например, при старшей версии ос = 5, а subsystem = 6 файл признавался невалидным. Другие цифры просто не помню.

    Собсно вопрос: где-нибудь выписаны правила, какие значение могут принимать эти поля? Если да, то куда копать?
     
  2. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    Версия линкера значения не имеет, заполнять или не заполнять её решает сам линкер. А вот про поле 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, остальные она грузить не будет сам нав. понимаешь почему.
     
  3. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    ты не понял. Я имел ввиду поле Major SubSys Version, которое находится по смещению +48h от начала РЕ
     
  4. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    есть микрософтофская спецификация по пе в пдф могу скинуть.

    как ты написал, так я и понял )
     
  5. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    ну если там есть описание того, какие версии и чему должны соостветствовать, то был бы признателен за ссылочку в личку. А просто спецификаций у меня у самого как грязи ;)
     
  6. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Версии OS, subsystem: а что тут непонятного? Версии ОС и подсистемы соответственно. Для console и GUI cовпадают вроде всегда.
     
  7. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    ты вопрос читал? ладно, спрошу по-другому: какого винни пуха винда назвала файл невалидным, когда major os version = 5, а major subsys version = 6? Для тех, кому лень читать мой вопрос, уточню, что я спрашиваю про поля по смещениям +40h и +48h от начала PE, а НЕ про поле SubSystem по смещению +5Ch - это поле меня совершенно не интересует.
     
  8. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    А ось какая?
     
  9. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    виста, хп
    на 2к не помню. Точные номера версий при которых был креш тоже не скажу, т.к. сейчас этих файлов уже нет под рукой. Но то, что половина упакованных файлов после таких вот изменений версий падала - это факт
     
  10. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Так. Версию OS игнорируют 98, 2K и XP (тестовый файл по крайней мере запускается). 98 требует версию subsystem <= 4.10, 2K, соответственно, 5.00 и XP, соответственно 5.x. В XP ещё требует минимальный subsystem (3.10 вроде), а 98 проглотит даже нули.
    Версиями образа и линкера, имхо, может интересоваться только линкер.
    ЗЫ (отмазка): осторожно, в посте всё равно бред.