Зачем загрузчик проверяет секции .aspack и др.

Тема в разделе "WASM.RESEARCH", создана пользователем V0ldemAr, 11 дек 2007.

  1. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    Не совсем так. При выравнивании секции на величину <1000h винда подразумевает, что физический образ всегда "равен" виртуальному, т.е. грузит весь Image одним куском - вот в этом случае у тебя и получается, что оффсет=RVA.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    угу. если SectionAlgiment >= PAGE_SIZE то это правило не действует.
     
  3. like_a

    like_a New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2006
    Сообщения:
    16
    Код (Text):
    1. When NX is supported, it is enabled by default. Windows allows programs to control which pages disallow execution through its API as well as through the section headers in a PE file.
    2.  
    3. In the API, runtime access to the NX bit is exposed through the Win32 API calls VirtualAlloc[Ex] and VirtualProtect[Ex]. In these functions, a page protection setting is specified by the programmer.
    Так почему приведенные паковщики "поддерживаемые ядром" просто не настраивают аттрибуты секций под себя?
     
  4. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    like_a
    Ответ дал dermatolog в #15.
     
  5. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Это не докажешь обычному пользователю, который скажет соседу, что новая винда херня и не стоит на неё
    пока что переходить, вот и приходится девелопперам страдать идиотизмом, правда не ясно, как далеко
    это страдание может уйти :)
     
  6. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    nester7
    Не надо никому страдать идиотизмом :)) Если гавнопакеры перестанут работать на новых версиях винды, то этими гавнапакерами просто перестанут пользоваться и это правильно.
     
  7. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    Пакером то можно перестать пользоваться, но что делать с кучей софта, который уже был написан и пожат. Если бы Microsoft не сделали поддержку этих пакеров, то все не сильно прошаренные люди кричали, что винда гавно. В общем разработкчики винды не такие и гражданини как их все считают.
     
  8. like_a

    like_a New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2006
    Сообщения:
    16
    Это скорее вопрос. Проблемы с головой хорошее объяснение, но верится с трудом. Т.е. DEP можно победить просто установив флаг executable для соответсвующей страницы? Если это факт, то у создателей этих пакеров действительно плохо с головой и вопрос закрыт.
     
  9. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Microsoft TechNet:

    Тут не с головой плохо, а просто не соблюдение "best practices for application and driver developers" :)
    Просто раньше, до DEP, по умолчанию можно было (да и сейчас без PAE) исполнять код на страницах RW (aka stack к примеру).
     
  10. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    like_a
    Да.
    nester7
    Флаг EXECUTABLE для секций кода придуман был давным давно и это было сделано явно не случайно.
     
  11. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    P.S. С каждой новой версии виндов майкрософт вставляет в свой код всё больше и больше вот таких вот затычек и неудивительно что со временем поддерживать эту кучу какашек будет очень проблематично - с одной стороны может это и к лучшему, тогда можно будет со спокойной совестью перейти на какой-нить *nix и забыть про этот маразм с кривой поддержкой кривого софта на уровне операционной системы.
     
  12. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Не понял твою мысль и как сказанное связано с моим постом. Ну есть флаг, значит страницы для этой секции будут
    помечены как исполняемые, нету - это данные (утрируя).
     
  13. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    nester7
    Ты говоришь про аттрибуты страницы, которые девелопер может выставить через VirtualProtect. Я же говорю про флаги секции, для которых загрузчик сам вызывает VirtualProtect с нужными флагами. Достаточно у секцияй с кодом в самом файле поставить флаг EXECUTABLE, чтобы при включенном DEP не было проблем с выполнением кода в этих секциях.
     
  14. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    А, ну да :)
    Там дальше, кстати, об этом написано:
     
  15. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Мой мозг просто, почему-то, зациклился на генерации кода на стеке )