CEM>Есть ли отлаженные способы загрузки, чтоб и импорт был нормальный и под разными операционками работало?
CEM>Поиском посмотрел — есть несколько вариантов, но потом находились баги, и всё как-то затихало, непонятно, было пофиксано или было брошено?
CEM>Меня сёдня ещё такая идея посетила: ведь LoadLibraryExW (а именно она зовётся в конце концов, что бы мы ни звали, смотрел сейчас под дебагом) должна же обратиться к файлу, открыть его и зачитать? Хорошо бы в этот момент ей подсунуть свои данные Проблема в том, что ReadFile не перехватить, он в одном модуле с LoadLibraryExW
LoadLibraryExW (вернее ntdll!LdrLoadDll) вызывает NtCreateSection с флагом SECTION_IMAGE который собственно парсит имадж и раскладывает его по памяти, далее LdrLoadDll настраивает импорты/экспорты etc.
Так что если захукаете NtCreateSection, предыдущий NtOpenFile и до кучи NtQuerySection и NtAreMappedFilesTheSame и может еще NtQueryVirtualMemory, сами распарсите PE заголовок, как это делает ядро, то настройку импортов/экспортов/PEB ldr листов винда и правда сделает за вас.