Есть 2 утилиты: ProcessHacker и ListDlls64 от Руссиновича. ListDlls64 читает список загруженных в процесс DLL из PEB'a, а ProcessHacker получает список процесса через NtQueryVirtualMemory(MemoryBasicInformation), т.е. через VAD.
Списки эти отличаются. Есть ощущение, что некоторые DLL спроецированы на адресное пространство процесса, а не загружены через LoadLibrary...
Например, в процессе svchost.exe присутствуют wevtapi.dll, winlogon.exe, tquery.dll, которые отсутствуют в PEB.
Такая штука прослеживается на всех ОС начиная с Vista. На XP такого не замечал.
Кто-нибудь может подсказать для чего и как это сделано?