上文提到宿主机可以通过VMWARE获取客户机内WINDOWS内部的进程链表,此文在此基础上拓展应用获取一些可用数据。
当取得进程的CR3之后可以得到对进程所有数据的访问,在内核对象的EPROCESS可取得进程的PEB,PEB信息可查看相关文档。附录代码为32位,64位进程模块遍历
32位如下:
DWORD MemBaseClass::BrushProcessModuleList(const char *FindName)
{
USES_CONVERSION;
CString tempStr;
char tempBuffer[100];
int FindCount=0;
DWORD pLdrDataEntry;
DWORD pPebLdrData;
DWORD pListEntryStart;
DWORD pListEntryEnd;
pPebLdrData = ReadDword(MyPeb+0x0C);
pListEntryStart = ReadDword(pPebLdrData+0x14);
pListEntryEnd = pListEntryStart;
// DebugPrint("DDK_BrushProcessModuleList MyCr3 :0x%x",MyCr3);
// DebugPrint("DDK_BrushProcessModuleList MyPeb :0x%x",MyPeb);
// DebugPrint("DDK_BrushProcessModuleList pListEntryEnd:0x%x",pListEntryEnd);
do
{
pLdrDataEntry = pListEntryStart+0x04;
DWORD DllBase = ReadDword(pLdrDataEntry+0x0c);
if (DllBase == 0)
break;
DWORD