进程枚举和进程加载的模块枚举
2023-11-07
9
0
原文转自:https://www.cnblogs.com/M-Anonymous/p/9710921.html
#include<windows.h>
#include<stdio.h>
#include<tlhelp32.h>
BOOL GetProcessList();
int main(void)
{
GetProcessList();
return 0;
}
BOOL GetProcessList()
{
HANDLE hProcessSnap;
HANDLE hModuleSnap;
BOOL bRet = FALSE;
BOOL bModule = FALSE;
PROCESSENTRY32 pe32 = {0};
MODULEENTRY32 me32 = {0};
pe32.dwSize = sizeof(PROCESSENTRY32);
me32.dwSize = sizeof(MODULEENTRY32);
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
bRet = Process32First(hProcessSnap,&pe32);
while(bRet)
{
printf("%s\n",pe32.szExeFile);
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pe32.th32ProcessID);
bModule = Module32First(hModuleSnap,&me32);
while(bModule)
{
printf("\t%s\n",me32.szExePath);
bModule = Module32Next(hModuleSnap,&me32);
}
bRet = Process32Next(hProcessSnap,&pe32);
}
CloseHandle(hProcessSnap);
CloseHandle(hModuleSnap);
return TRUE;
}