/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuProcessMap.Win32.cpp Date: 2021-6-12 Author: Reece ***/ #include #include "AuProcessMap.Win32.hpp" #include "AuProcessMap.NT.hpp" #include namespace Aurora::Process { void MakeToolHelp32Snapshot() { MODULEENTRY32W me32; HANDLE hModuleSnap = INVALID_HANDLE_VALUE; hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId()); if (hModuleSnap == INVALID_HANDLE_VALUE) { SysPushErrorGen("CreateToolhelp32Snapshot"); return; } me32.dwSize = sizeof(MODULEENTRY32W); if (!pModule32FirstW) { SysPushErrorFeatureMissing(); return; } if (!pModule32FirstW(hModuleSnap, &me32)) { SysPushErrorGen("Module32First failed"); CloseHandle(hModuleSnap); return; } do { auto h = reinterpret_cast(me32.modBaseAddr); InvaildateModule(h); MakeAware(h); } while (pModule32NextW && pModule32NextW(hModuleSnap, &me32)); CloseHandle(hModuleSnap); } }