Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.12;
Скачать: CL | DM;

Вниз

список 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 вся ветка

Текущий архив: 2008.10.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
15-1219352572
Германн
2008-08-22 01:02
2008.10.12
Вопрос к тем, кому за 50


15-1219142824
Vlad Oshin
2008-08-19 14:47
2008.10.12
откомпилируйте, пожалуйста, чему у вас получилось = i?


1-1200405748
istok
2008-01-15 17:02
2008.10.12
передача событий из потока...


2-1220268091
workbench
2008-09-01 15:21
2008.10.12
Запрет закрытия консольного окна


2-1220412679
Татьяна
2008-09-03 07:31
2008.10.12
Операции с таблицами БД