Было бы технически возможно создать "толстую"/"универсальную" Windows DLL?

Несмотря на то, что в настоящее время не существует инструмента, который мог бы его создать, можно ли поместить символы x64 и x86 в DLL и работать ли он как на x64, так и на x86?

Создание такого было бы возможно, если бы была какая-то спецификация / хак, который позволял бы загрузчику Windows DLL пропускать несовместимые символы и т. Д...

2 ответа

Решение

Нет, DLL содержит только один заголовок IMAGE_FILE_HEADER в SDK. Который содержит поле Machine, он указывает, какой код содержит DLL. Нет способа указать более одного типа машины.

Файлы в файловой системе NTFS вполне могут содержать несколько двоичных файлов PE с использованием альтернативных потоков данных NTFS. Тем не менее, поиск в Google предполагает, что попытки использовать LoadLibrary с потоками встретились с провалом.

Другие вопросы по тегам