Недостатки PE-формата

Тема в разделе "WASM.OS.DEVEL", создана пользователем AntiB, 18 ноя 2007.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброе время уток!
    У меня небольшой вопрос:
    Какие есть недостатки (с вашей точки зрения) у формата исполняемых файлов PE? Если спросите, зачем тебе это – я просто хочу создать на его основе «новый» формат и может, есть какие-то предложения для «идеального» формату. Заранее спасибо.
     
  2. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    В заголовке много лишней и ненужной инфы. Остальное, в принципе, терпимо.
     
  3. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    SadKo
    это ясно, я много выкинул с заголовков, но может, есть какие-то моменты, которые хорошо было б изменить?
     
  4. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    убрать имена секций. устроить заданный порядок секций (как DataDir-s), DataDir-s убрать :)
     
  5. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Freeman
    Хорошая идея насчет убрать имена секции, а вот насчет порядка - можно поподробнее?
     
  6. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    чем хороша эта идея? экономишь 20-30 байтов, а чтобы увидеть какие секции в файле присутствуют понадобится программа для просмотра секций.
     
  7. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    t00x
    просто зачем лишние? а то что каждая секция будет подписанная - мало что выиграешь, легче чтобы программа сама понимала что за секция (под программой подразумеваю - дополнительная для простомотра ), сейчас много кто использует программы для простомотра PE файлов - даже когда секции подписание... а кто тебе даст уверенность в том что секция верно подписана? (это банальный случай, но всё же)
     
  8. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    лишние что?
    ИМХО именованые секции являются достоинством PE формата, особенно .text и .tls.
     
  9. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    t00x
    может быть, но я лично думаю - что это хорошая идея (убрать имена заголовка)
     
  10. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    это лишнее, так как указатели и размер данных элементов есть в DataDir. Т.е. некий симбиоз DataDir и таблицы секции считаю хорошим решением.
     
  11. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    AntiB

    Есть одно достоинство - все программы NT линейки имеют этот формат. (с ужасом вспоминаю win9x линейку). А так этот формат крайне расширяемый, даже и в 64 битах РЕ. Это достоинство перевешивает все недостатки.
     
  12. t00x

    t00x New Member

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

    "идеальный формат" должен быть основан на архитектуре операционной системы, которая в свою очередь основана на аппаратном решении. поэтому формат исполняемых файлов PE являлся на момент создания "идеальный форматом" под все аппаратные решения.
     
  13. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    t00x
    ладно, но PE формат - не совершенный имхо
     
  14. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    t00x

    Идеальный -- громко сказано. Неплохой, достаточно гибкий -- да, но не идеальный. Кстати, архитектура ОС только частично зависит от аппаратуры.
     
  15. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    имхо лучше создать свой а не переделывать PE. взять от туда только секции + иморт/экспорт/релоки. + упростить дебаг.
     
  16. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    n0name
    я тоже так считаю, но за основу надо взять этот формат. Если разобраться то в нем много лишнего и ненужного, но самая основная конструкция, которою ты назвал - хорошая, надо просто добавить что-то свое но это мое мнения, хоть и может ошибочное
     
  17. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Меня вот интересует, где будет применяться этот формат? Писать под него свой загрузчик? Или свою ось? + свой компилятор нужен?
     
  18. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    скорее линкер, что немного проще пишется.
    я свой в своей ОСи.
    AntiB
    все что я перечислил есть и в ELF AFAIR. ИМХО формат можно упростить до такой схемы:
    1. Заголовок, 8 байт: сигнатура + слово флагов, присутствие "секций"
    2. Сами секции, заданные в определенном порядке - секция данных, кода, релоки, импорт, экспорт, дебаг.
    всё, больше не надо.
     
  19. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    естественно хидер "секции" можно упростить до:
    1. RVA
    2. VirtSize
    3. PhysSize

    Релоки - это массив RVA.
    Экспорт - комбинация имени функции в паскаль виде и RVA.
    Импорт - то же самое что и экспорт, только с разбивкой на блоки для каждой "библиотеки".

    Я собираюсь использовать такой формат. ИМХО ничего лишнего, а функционал достаточен для самодельной личной ОСи.
     
  20. Ultrin Faern

    Ultrin Faern New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    170
    Не забудьте про секцию ресурсов - оно иногда очень удобно...