Hello Group,
So am not sure, if I understood, the working of ldrmodules correctly, but
in short, for each process, I imagine it looks at the VAD; and for each dll
found there compares it with the 3 lists in the process PEB and reports
back on any discrepancy.
A snippet, from vadinfo for a process with pid 12128, I can see a dll mapped
VAD node @ 0xfffffa80088378c0 Start 0x0000000000040000 End
0x0000000000040fff Tag Vad
Flags: Protection: 7, VadType: 2
Protection: PAGE_EXECUTE_WRITECOPY
Vad Type: VadImageMap
ControlArea @fffffa8006a86c40 Segment fffff8a00021d4e0
Dereference list: Flink 00000000, Blink 00000000
NumberOfSectionReferences: 1 NumberOfPfnReferences: 1
NumberOfMappedViews: 119 NumberOfUserReferences: 120
WaitingForDeletion Event: 00000000
Control Flags: File: 1, Image: 1
FileObject @fffffa80069c5250, Name: \Windows\System32\apisetschema.dll
First prototype PTE: fffff8a00021d5a8 Last contiguous PTE: fffffffffffffffc
Flags2: Inherit: 1
But ldrmodules (or dlllist) over the image, does not show that dll.
cat ldrmodules.txt | grep -i apiset
cat dlllist.txt | grep -i apiset
The process in question has a pid of 12128, so on a frequency count, there
is a large discrepancy, that I don't understand why.
cat ldrmodules.txt | grep 12128 | wc -l
54
cat vadinfo-12128.txt | grep dll | wc -l
130
Any pointers to a link I should read up on to understand the concepts here.
Should not have ldrmodules, reported on all the dlls that were found as
mapped files in the VAD ?
Thanks,
JB