Форум: "WinAPI";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
Внизсписок dll Найти похожие ветки
← →
kernel © (2007-12-10 20:09) [0]Доброго времени суток, уважаемые. Собсно, как можно получить список загруженных в память dll?
← →
Anatoly Podgoretsky © (2007-12-10 20:23) [1]> kernel (10.12.2007 20:09:00) [0]
В какую память?
← →
Вредитель © (2007-12-10 20:34) [2]В ОЗУ. Он имеет в виду работающие в данный момент.
← →
palva © (2007-12-10 21:11) [3]Перечислить все процессы и у каждого процесса перечислить все исполнительные модули, которые этим процессом загружены. Там будут exe и dll. Наверняка это будет неполный список. Будут еще dll, которые используются системой.
← →
Leonid Troyanovsky © (2007-12-10 22:10) [4]
> palva © (10.12.07 21:11) [3]
> Там будут exe и dll. Наверняка это будет неполный список.
> Будут еще dll, которые используются системой.
Почему ж неполный.
Если они используются, то и загружены.
--
Regards, LVT.
← →
Riply © (2007-12-11 07:46) [5]> [4] Leonid Troyanovsky © (10.12.07 22:10)
> Почему ж неполный.
> Если они используются, то и загружены.
Значит я плохо умею "у каждого процесса перечислять все исполнительные модули".
Потому, что если посмотреть список, полученный
при помощи NtQuerySystemInformation(SystemModuleInformation,...,
то в нем (акромя всяких sys) можно найти и .dll модули,
которые отсутствуют в первом списке. :)
Например C:\WINDOWS\system32\hal.dll
← →
Rouse_ © (2007-12-11 09:21) [6]
> Например C:\WINDOWS\system32\hal.dll
Посмотри подсистему образа в заголовке :)
← →
Riply © (2007-12-11 12:20) [7]> [6] Rouse_ © (11.12.07 09:21)
> Посмотри подсистему образа в заголовке :)
Спасибо. Попробую :)
← →
kernel © (2007-12-11 17:07) [8]А вообще с помощью NtQuerySystemInformation реально получить список загруженных модулей, кроме используемых системой? :)
← →
slow!alfamoon!com (2007-12-11 19:58) [9]Можно из PEB прочитать, код я тут постил
← →
kernel © (2007-12-11 20:08) [10]
> slow!alfamoon!com (11.12.07 19:58) [9]
> Можно из PEB прочитать, код я тут постил
А это как? Если не сложно, дайте ссылочку на код, plz.
← →
slow!alfamoon!com (2007-12-13 12:27) [11]Поиском чего-то не нашел.. Исходники дома. Вечером...
← →
Rouse_ © (2007-12-13 13:55) [12]
> А это как?
NtQueryInformationProcess вернет тебе PROCESS_BASIC_INFORMATION у которого вторым параметром указатель на PEB
http://msdn2.microsoft.com/en-us/library/aa813706.aspx
В нем есть указатель на PEB_LDR_DATA
http://msdn2.microsoft.com/en-us/library/aa813708.aspx
В ней тебя будет интересовать двусвязный список InMemoryOrderModuleList за каждым из элементов которого расположенна структура LDR_DATA_TABLE_ENTRY из которой ты вытащишь FullDllName :)
За каждым из ллементов это значит по смещению 8 от начала элемента :)
← →
slow!alfamoon!com (2007-12-13 16:32) [13]можно просто вызвать NtCurrentPeb или прочитать из памяти - тк адрес захардкоден (хотя в висте не проверял)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c