遍历某一进程模块
#include <iostream> #include <Windows.h> #include <TlHelp32.h> #include <locale.h> using namespace std; // 遍历系统的进程模块 BOOL TraverseProcessModules(DWORD dwPid) { HANDLE hModuleSnap = INVALID_HANDLE_VALUE; MODULEENTRY32 me32 = { sizeof(MODULEENTRY32) }; // 创建一个快照句柄 hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPid); if (hModuleSnap == INVALID_HANDLE_VALUE) return FALSE; // 通过模块快照句柄获取第一个模块 if (!Module32First(hModuleSnap, &me32)) { CloseHandle(hModuleSnap); return FALSE; } // 循环获取模块信息 do { printf("模块基地址:%x,模块大小:%x,模块名称:%s\n", me32.modBaseAddr, me32.modBaseSize, me32.szModule); } while (Module32Next(hModuleSnap, &me32)); // 关闭句柄并且退出函数 CloseHandle(hModuleSnap); return TRUE; }