HANDLE hProcess = GetCurrentProcess();
HMODULE hMods[0x30]; DWORD cbNeeded;
EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded);
for (int i=0; i < cbNeeded/sizeof(HMODULE); i++) {
GetModuleFileName(hMods[i], path, MAX_PATH);
GetModuleInformation(hProcess, hMods[i], &modinfo, sizeof(modinfo));
// modinfo.lpBaseOfDll, modinfo.SizeOfImage, modinfo.EntryPoint
}
取得載入模組清單(基址、大小、路徑),包含主程式 bash.exe、ntdll.dll、kernel32.dll、cygwin.dll 等。後續文章將逐一對照各模組在記憶體空間的實際區塊分佈。