За каким ... загрузчик PE-файлов лезет в директорию ресурсов?

Тема в разделе "WASM.WIN32", создана пользователем Broken Sword, 31 дек 2005.

  1. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    С наступающим! Собсно, непонятно, какие данные может использовать загрузчик из директории ресурсов до передачи управления на OEP?
     
  2. Nothing

    Nothing New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2003
    Сообщения:
    139
    Адрес:
    Russia
    Как это какие? manifest например. Там прописаны depenedecies для .NET программ, и если они не выполняются, то программа вообще не запустится. Пример: компилятор командной строки cl.exe из поставки VS 2005 - .NET2 ему нафиг не нужен, но на машине где он не установлен - система просто отказывается даже загружать файл...



    p.s. с наступающим :)
     
  3. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    Хм. Загрузчик может сразу посмотреть в записях директорий на IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR и при отсутствии не лезть за манифестом. Так ведь лезет даже когда нет вообще такой записи! Еще странный факт: в XP можно запустить файл с секцией ресурсов нулевого размера, а в 9x нельзя... хотя во времена 9x .NET вообще не существовало. Значит, манифест вообще постольку поскольку получается... что еще может быть нужно загрузчику оттуда? Я просто пишу пакер и пытаюсь понять людей, которые писали виндовый загрузчик. Понятно что для совместимости нужно сохранять дерево и т.п., но хотелось бы знать зачем?
     
  4. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    посмотри исходники upx

    там есть комментарии насчёт ресурсов
     
  5. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    staier, кроме информации о том, что ресурсы должны быть выровнены на начало секции и что oleaut32 не может работать с ресурсами не в .rsrc секции никакой другой информации касательно моего вопроса я не обнаружил. Не мог бы ты дать конкретную ссылку?
     
  6. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Broken Sword Я на w2k в юзермоде протестил загрузчик самого простого exe(лог из оллидбг в аттаче), обращения к директории ресурсов (давайте выражатся точнее [PE_header.OptionalHeader.Data_Directories.Resource_Table]) не выявил, только импорты и TLS



    Если пишешь пакер, то cделай себе такие логи под всеми NT (надо настроить прием дебажных строк, после первой поставить бряк правой в Alt+M, дамп в CPU с отображением полей special -> PE header и можно потом их в лог копировать), плюс потесть все виды упакованных модулей с разными параметрами LoadLibraryEx, ещё надо решить - должны ли отображатся в проводнике иконка, версия, цифр. подпись и т.д. запакованого файла (чтобы знать что можно\нельзя паковать)

    [​IMG] _380000686__start.log
     
  7. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    throwCantPack("empty resource sections are not supported");



    ;)



    а вообще я имел ввиду видимо про oleaut & rsrc
     
  8. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    bogrus, проблема в том что это для Win CE :). Хотел просто чисто теоретически узнать - чего ему туда лезть вообще?