#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;

}

 

相关文章:

  • 2021-11-21
  • 2021-07-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-06
  • 2021-05-25
  • 2021-11-14
猜你喜欢
  • 2022-12-23
  • 2022-02-19
  • 2021-09-01
  • 2022-01-16
  • 2021-10-05
  • 2021-09-24
  • 2022-02-25
相关资源
相似解决方案