From b89bee2c38d7adf613f9620e366cd4be40468203 Mon Sep 17 00:00:00 2001 From: ufrisk Date: Thu, 13 Dec 2018 00:08:17 +0100 Subject: [PATCH] Version 1.2.1 --- files/vmm.dll | Bin 120320 -> 120320 bytes files/vmm.lib | Bin 9702 -> 9702 bytes vmm/mm_x86.c | 1 + vmm/vmm.h | 2 +- vmm/vmmdll.c | 2 +- vmm/vmmvfs.c | 2 +- 6 files changed, 4 insertions(+), 3 deletions(-) diff --git a/files/vmm.dll b/files/vmm.dll index 9ade46fb62859dc9067c2ce6305faf71f30389d9..f183beed2fa89d47d906e75cef2099b83a734163 100644 GIT binary patch delta 33321 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 q7QFZVXF=7FE`$=nPnydKLJR?8I@tHmV diff --git a/files/vmm.lib b/files/vmm.lib index 9ad5dd898a3ecdd346d3c9b256ee2e3f614744f4..e34a737a6e8a2fa1e37f9758063a8d416fe3b7e5 100644 GIT binary patch delta 62 zcmaFn{mgsABO%6#ll8?^CbJ700a-C((wjqt>lvYfKSg+;f{LQN5J4TriJN1@y7&R0 CjT4Fh delta 62 zcmaFn{mgsABO%5Kll8?^CbJ700a-C((wjqt>lvYfKSg+;f{LQN5J4Tr37ccYy7&Q~ C;S+=a diff --git a/vmm/mm_x86.c b/vmm/mm_x86.c index 0af452d..5028fac 100644 --- a/vmm/mm_x86.c +++ b/vmm/mm_x86.c @@ -45,6 +45,7 @@ VOID MmX86_TlbSpider(_In_ QWORD paDTB, _In_ BOOL fUserOnly) PMMX86_TLB_SPIDER_STAGE_INTERNAL pTlbSpiderStage; if(!(pTlbSpiderStage = (PMMX86_TLB_SPIDER_STAGE_INTERNAL)LocalAlloc(LMEM_ZEROINIT, sizeof(MMX86_TLB_SPIDER_STAGE_INTERNAL)))) { return; } pbPD = VmmTlbGetPageTable(paDTB & 0xfffff000, FALSE); + if(!pbPD) { return; } for(i = 0; i < 0x1000; i += 8) { pte = *(PDWORD)(pbPD + i); if(!(pte & 0x01)) { continue; } // not valid diff --git a/vmm/vmm.h b/vmm/vmm.h index 93e8fb3..d8eaf37 100644 --- a/vmm/vmm.h +++ b/vmm/vmm.h @@ -59,7 +59,7 @@ typedef struct tdMEM_IO_SCATTER_HEADER { #define VMM_VERSION_MAJOR 1 #define VMM_VERSION_MINOR 2 -#define VMM_VERSION_REVISION 0 +#define VMM_VERSION_REVISION 1 static const LPSTR VMM_MEMORYMODEL_TOSTRING[4] = { "N/A", "X86", "X86PAE", "X64" }; diff --git a/vmm/vmmdll.c b/vmm/vmmdll.c index 65e9854..12a04f4 100644 --- a/vmm/vmmdll.c +++ b/vmm/vmmdll.c @@ -235,7 +235,7 @@ BOOL VMMDLL_InitializeFile(_In_ LPSTR szFileName, _In_opt_ LPSTR szPageTableBase _Success_(return) BOOL VMMDLL_InitializeFPGA(_In_opt_ LPSTR szMaxPhysicalAddressOpt, _In_opt_ LPSTR szPageTableBaseOpt) { - return VMMDLL_InitializeReserved(7, (LPSTR[]) { "", "-device", "fpga", "-cr3", (szPageTableBaseOpt ? szPageTableBaseOpt : "0", "-max", szMaxPhysicalAddressOpt) }); + return VMMDLL_InitializeReserved(7, (LPSTR[]) { "", "-device", "fpga", "-cr3", (szPageTableBaseOpt ? szPageTableBaseOpt : "0"), "-max", (szMaxPhysicalAddressOpt ? szMaxPhysicalAddressOpt : "0") }); } _Success_(return) diff --git a/vmm/vmmvfs.c b/vmm/vmmvfs.c index 2f57534..6cc1818 100644 --- a/vmm/vmmvfs.c +++ b/vmm/vmmvfs.c @@ -320,7 +320,7 @@ BOOL VmmVfsListFilesProcess(_In_ PVMMVFS_PATH pPath, _Inout_ PHANDLE pFileList) if(!pProcess) { return FALSE; } if(!pProcess->pMemMap || !pProcess->cMemMap) { if(!pProcess->fSpiderPageTableDone) { - VmmTlbSpider(0, pProcess->fUserOnly); + VmmTlbSpider(pProcess->paDTB, pProcess->fUserOnly); pProcess->fSpiderPageTableDone = TRUE; } VmmMapInitialize(pProcess);