![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
список dll [D7, Win2k, WinXP]
kernel © (2007-12-10 20:09:00)Доброго времени суток, уважаемые. Собсно, как можно получить список загруженных в память dll?
slow!alfamoon!com (2007-12-13 16:32:00) [1]можно просто вызвать NtCurrentPeb или прочитать из памяти - тк адрес захардкоден (хотя в висте не проверял)
Rouse_ (2007-12-13 13:55:00) [2]
> А это как?
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 12:27:00) [3]Поиском чего-то не нашел.. Исходники дома. Вечером...
kernel (2007-12-11 20:08:00) [4]
> slow!alfamoon!com (11.12.07 19:58) [9]
> Можно из PEB прочитать, код я тут постил
А это как? Если не сложно, дайте ссылочку на код, plz.
slow!alfamoon!com (2007-12-11 19:58:00) [5]Можно из PEB прочитать, код я тут постил
kernel (2007-12-11 17:07:00) [6]А вообще с помощью NtQuerySystemInformation реально получить список загруженных модулей, кроме используемых системой? :)
Riply (2007-12-11 12:20:00) [7]> [6] Rouse_ © (11.12.07 09:21)
> Посмотри подсистему образа в заголовке :)
Спасибо. Попробую :)
Rouse_ (2007-12-11 09:21:00) [8]
> Например C:\WINDOWS\system32\hal.dll
Посмотри подсистему образа в заголовке :)
Riply (2007-12-11 07:46:00) [9]> [4] Leonid Troyanovsky © (10.12.07 22:10)
> Почему ж неполный.
> Если они используются, то и загружены.
Значит я плохо умею "у каждого процесса перечислять все исполнительные модули".
Потому, что если посмотреть список, полученный
при помощи NtQuerySystemInformation(SystemModuleInformation,...,
то в нем (акромя всяких sys) можно найти и .dll модули,
которые отсутствуют в первом списке. :)
Например C:\WINDOWS\system32\hal.dll
Leonid Troyanovsky (2007-12-10 22:10:00) [10]
> palva © (10.12.07 21:11) [3]
> Там будут exe и dll. Наверняка это будет неполный список.
> Будут еще dll, которые используются системой.
Почему ж неполный.
Если они используются, то и загружены.
--
Regards, LVT.
palva (2007-12-10 21:11:00) [11]Перечислить все процессы и у каждого процесса перечислить все исполнительные модули, которые этим процессом загружены. Там будут exe и dll. Наверняка это будет неполный список. Будут еще dll, которые используются системой.
Вредитель (2007-12-10 20:34:00) [12]В ОЗУ. Он имеет в виду работающие в данный момент.
Anatoly Podgoretsky (2007-12-10 20:23:00) [13]> kernel (10.12.2007 20:09:00) [0]
В какую память?