Было бы технически возможно создать "толстую"/"универсальную" Windows DLL?
Несмотря на то, что в настоящее время не существует инструмента, который мог бы его создать, можно ли поместить символы x64 и x86 в DLL и работать ли он как на x64, так и на x86?
Создание такого было бы возможно, если бы была какая-то спецификация / хак, который позволял бы загрузчику Windows DLL пропускать несовместимые символы и т. Д...
2 ответа
Нет, DLL содержит только один заголовок IMAGE_FILE_HEADER в SDK. Который содержит поле Machine, он указывает, какой код содержит DLL. Нет способа указать более одного типа машины.
Файлы в файловой системе NTFS вполне могут содержать несколько двоичных файлов PE с использованием альтернативных потоков данных NTFS. Тем не менее, поиск в Google предполагает, что попытки использовать LoadLibrary
с потоками встретились с провалом.