Какие есть возможные варианты получения списка загруженных модулей в процес, из драйвера ? Есть еще что-то кроме как через РЕВ и PEPROCESS(напрямую)
В принципе, способы есть, но это зависит от того, какая именно информация требуется для каждого модуля. Чем не устраивает?
парсинг VAD. здесь есть старая тулза - http://vadtools.sourceforge.net/ но общие принципы можно глянуть.
Адресс peb находится в пользовательской памяти тоесть нужно делать KeAttachProcess, все хорошо но! При попытки прочитать из LDR_DATA_TABLE_ENTRY FullDllName происходит ошибка доступа(windbg тоже не может показать строку), хотя обращение ко всем остальным параметрам LDR_DATA_TABLE_ENTRY и они имеют правильное значение. А PEPROCESS меняется в разных версиях.
Вероятно, ты что-то делаешь не так. Например, ты уверен, что не пытаешься прочитать голову списка? Головной элемент не содержит никаких полезных данных, перечисление необходимо начинать с pleListHead -> Flink. Ну и код можешь показать, вдруг что присоветуем. Адрес PEB легко извлекается через PsGetProcessPeb().
n0name Вначале нужно определить условия при которых модуль можно считать загруженным. Тоесть для загрузчика например если нет записи, то нет и модуля, хотя проекция может быть.
Похоже XshStasX тоже делает ядерный загрузчик PE образов, так что способ с PEB вполне подходит. Если модуль промаплен вручную то можно использовать ntreadvirtualmemory + PE парсер для определения валидного PE образа.
Ещё есть NtQueryVirtualMemory() с классом MemoryBasicInformation, на выходе будет MEMORY_BASIC_INFORMATION, поле Type проверить на MEM_IMAGE. Это в случае честно загруженного модуля будет работать. В случае отображённого образа можно проверять на MEM_MAPPED, тоже будет работать. Ну а во всех остальных случаях - да, только чтение и анализ.
x64 Как считаете, возможен ли вызов пользовательского кода напрямую из ядра(при !IRQL). Тоесть например прямо джамп в ntdll!LdrEnumerateLoadedModules() из дрова. И какие с этим могут быть проблемы.
Выкладываю ссылку для особо ленивых http://www.wasm.ru/forum/viewtopic.php?pid=384851#p384851 Пример от Great'a, так что работоспособность гарантируется. Clerk Экзотика.