С наступающим! Собсно, непонятно, какие данные может использовать загрузчик из директории ресурсов до передачи управления на OEP?
Как это какие? manifest например. Там прописаны depenedecies для .NET программ, и если они не выполняются, то программа вообще не запустится. Пример: компилятор командной строки cl.exe из поставки VS 2005 - .NET2 ему нафиг не нужен, но на машине где он не установлен - система просто отказывается даже загружать файл... p.s. с наступающим
Хм. Загрузчик может сразу посмотреть в записях директорий на IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR и при отсутствии не лезть за манифестом. Так ведь лезет даже когда нет вообще такой записи! Еще странный факт: в XP можно запустить файл с секцией ресурсов нулевого размера, а в 9x нельзя... хотя во времена 9x .NET вообще не существовало. Значит, манифест вообще постольку поскольку получается... что еще может быть нужно загрузчику оттуда? Я просто пишу пакер и пытаюсь понять людей, которые писали виндовый загрузчик. Понятно что для совместимости нужно сохранять дерево и т.п., но хотелось бы знать зачем?
staier, кроме информации о том, что ресурсы должны быть выровнены на начало секции и что oleaut32 не может работать с ресурсами не в .rsrc секции никакой другой информации касательно моего вопроса я не обнаружил. Не мог бы ты дать конкретную ссылку?
Broken Sword Я на w2k в юзермоде протестил загрузчик самого простого exe(лог из оллидбг в аттаче), обращения к директории ресурсов (давайте выражатся точнее [PE_header.OptionalHeader.Data_Directories.Resource_Table]) не выявил, только импорты и TLS Если пишешь пакер, то cделай себе такие логи под всеми NT (надо настроить прием дебажных строк, после первой поставить бряк правой в Alt+M, дамп в CPU с отображением полей special -> PE header и можно потом их в лог копировать), плюс потесть все виды упакованных модулей с разными параметрами LoadLibraryEx, ещё надо решить - должны ли отображатся в проводнике иконка, версия, цифр. подпись и т.д. запакованого файла (чтобы знать что можно\нельзя паковать) _380000686__start.log
throwCantPack("empty resource sections are not supported"); а вообще я имел ввиду видимо про oleaut & rsrc
bogrus, проблема в том что это для Win CE . Хотел просто чисто теоретически узнать - чего ему туда лезть вообще?