From bffee68c55a4f23566e5200d2db4f9a102b2c87a Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Tue, 1 Oct 2019 23:41:40 +0200 Subject: DLLHelper supports setting preferred virtual address for virtual memory allocation --- MemDriverLib/DLLHelper.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'MemDriverLib/DLLHelper.cpp') diff --git a/MemDriverLib/DLLHelper.cpp b/MemDriverLib/DLLHelper.cpp index 15951b3..20ab974 100644 --- a/MemDriverLib/DLLHelper.cpp +++ b/MemDriverLib/DLLHelper.cpp @@ -276,23 +276,23 @@ bool DLLHelper::VerifyHeader() return VerifyPeHeader(m_DLLPtr, m_DLLSize, &m_NTHeader); } -bool DLLHelper::InitTargetMemory() +bool DLLHelper::InitTargetMemory(UINT64 preferredVirtualAddress) { if (!m_DLLPtr || !m_NTHeader) { return false; } - PVOID wantedBaseAddr = m_TargetBaseAddress; + PVOID wantedAddress = (PVOID)preferredVirtualAddress; SIZE_T wantedSize = m_NTHeader->OptionalHeader.SizeOfImage; KInterface& ki = KInterface::getInstance(); - if (!ki.VAlloc(m_TargetPID, &wantedBaseAddr, &wantedSize, PAGE_EXECUTE_READWRITE)) { + if (!ki.VAlloc(m_TargetPID, &wantedAddress, &wantedSize, PAGE_EXECUTE_READWRITE)) { return false; } if (wantedSize < m_NTHeader->OptionalHeader.SizeOfImage) { return false; } - m_TargetBaseAddress = wantedBaseAddr; + m_TargetBaseAddress = wantedAddress; return true; } -- cgit v1.2.3