Сравнение списка модулей из PEB и VAD
От: -prus-  
Дата: 04.08.14 14:39
Оценка:
Всем привет!

Мне необходимо сравнить два списка загруженных в процесс модулей. Первый список беру из PEB процесса, а второр из списка VAD'ов процесса, как описано здесь.
Проблема заключается в том, что на x64 платформах для 32-битных процессов способ через VAD показывает мне модули, которых нету в списке PEB.
Например (жирным показаны модули, которых в PEB нет),

conime.exe

DLL — C:\Windows\SysWOW64\conime.exe
DLL — C:\Windows\system32\ntdll.dll
DLL — C:\Windows\system32\wow64.dll
DLL — C:\Windows\system32\wow64win.dll
DLL — C:\Windows\system32\wow64cpu.dll
DLL — C:\Windows\SysWOW64\ntdll.dll
DLL — C:\Windows\syswow64\kernel32.dll
DLL — C:\Windows\syswow64\ADVAPI32.dll
DLL — C:\Windows\syswow64\RPCRT4.dll
DLL — C:\Windows\syswow64\Secur32.dll
DLL — C:\Windows\syswow64\GDI32.dll
DLL — C:\Windows\syswow64\USER32.dll
DLL — C:\Windows\syswow64\msvcrt.dll
DLL — C:\Windows\syswow64\ole32.dll
DLL — C:\Windows\syswow64\OLEAUT32.dll
DLL — C:\Windows\system32\UxTheme.dll
DLL — C:\Windows\syswow64\IMM32.dll
DLL — C:\Windows\syswow64\MSCTF.dll
DLL — C:\Windows\syswow64\LPK.DLL
DLL — C:\Windows\syswow64\USP10.dll
DLL — C:\Windows\syswow64\CLBCatQ.DLL
DLL — C:\Windows\SysWOW64\uxtheme.dll

dseo13b.exe

DLL — C:\css\dseo13b.exe
DLL — C:\Windows\system32\ntdll.dll
DLL — C:\Windows\system32\wow64.dll
DLL — C:\Windows\system32\wow64win.dll
DLL — C:\Windows\system32\wow64cpu.dll
DLL — C:\Windows\SysWOW64\ntdll.dll
DLL — C:\Windows\syswow64\kernel32.dll
DLL — C:\Windows\syswow64\USER32.dll
DLL — C:\Windows\syswow64\GDI32.dll
DLL — C:\Windows\syswow64\ADVAPI32.dll
DLL — C:\Windows\syswow64\RPCRT4.dll
DLL — C:\Windows\syswow64\Secur32.dll
DLL — C:\Windows\system32\ShimEng.dll
DLL — C:\Windows\system32\apphelp.dll
DLL — C:\Windows\AppPatch\AcGenral.DLL
DLL — C:\Windows\syswow64\SHLWAPI.dll
DLL — C:\Windows\syswow64\msvcrt.dll
DLL — C:\Windows\system32\UxTheme.dll
DLL — C:\Windows\system32\WINMM.dll
DLL — C:\Windows\syswow64\ole32.dll
DLL — C:\Windows\syswow64\OLEAUT32.dll
DLL — C:\Windows\system32\OLEACC.dll
DLL — C:\Windows\system32\NETAPI32.dll
DLL — C:\Windows\syswow64\PSAPI.DLL
DLL — C:\Windows\system32\MSACM32.dll
DLL — C:\Windows\system32\VERSION.dll
DLL — C:\Windows\syswow64\SHELL32.dll
DLL — C:\Windows\system32\sfc.dll
DLL — C:\Windows\system32\sfc_os.dll
DLL — C:\Windows\syswow64\SETUPAPI.dll
DLL — C:\Windows\system32\USERENV.dll
DLL — C:\Windows\system32\dwmapi.dll
DLL — C:\Windows\syswow64\urlmon.dll
DLL — C:\Windows\syswow64\iertutil.dll
DLL — C:\Windows\system32\MPR.dll
DLL — C:\Windows\system32\IMM32.DLL
DLL — C:\Windows\syswow64\MSCTF.dll
DLL — C:\Windows\syswow64\LPK.DLL
DLL — C:\Windows\syswow64\USP10.dll
DLL — C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6002.18005_none_5cb72f96088
b0de0\comctl32.dll
DLL — C:\Users\9335~1\AppData\Local\Temp\~vis0002\vise32ex.dll
DLL — C:\Windows\syswow64\comdlg32.dll
DLL — C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6001.18000_none_886786f450
a74a05\COMCTL32.dll
DLL — C:\Windows\system32\PROPSYS.dll
DLL — C:\Windows\syswow64\CLBCatQ.DLL
DLL — C:\Windows\SysWOW64\propsys.dll
DLL — C:\Windows\SysWOW64\uxtheme.dll
DLL — C:\Windows\SysWOW64\sfc_os.dll
DLL — C:\Windows\SysWOW64\dwmapi.dll
DLL — C:\Windows\SysWOW64\mpr.dll
DLL — C:\Windows\SysWOW64\userenv.dll
DLL — C:\Windows\SysWOW64\oleacc.dll
DLL — C:\Windows\SysWOW64\netapi32.dll
DLL — C:\Windows\SysWOW64\winmm.dll
DLL — C:\Windows\SysWOW64\shimeng.dll
DLL — C:\Windows\SysWOW64\apphelp.dll
DLL — C:\Windows\SysWOW64\msacm32.dll
DLL — C:\Windows\SysWOW64\sfc.dll
DLL — C:\Windows\SysWOW64\version.dll
DLL — C:\Windows\SysWOW64\imm32.dll


Полные имена модулей при получении их через VAD беру из PFILE_OBJECT + IoQueryFileDosDeviceName.
Также учитываю, что у 32-битных процессов под x64 нужно читать 2 PEB'а — 32 битный и 64 битный...

Если кто подскажет, как бы обойти данную проблему, буду крайне благодарен.

Заранее спасибо!
С уважением,
Евгений
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.