Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <stdio.h>
- #include <tchar.h>
- #include <psapi.h>
- void processesModule(DWORD processIn);
- void printProcessModule(HANDLE process, DWORD space, HMODULE* processModule, BOOL option);
- int main(void)
- {
- DWORD proceses[2048];
- DWORD procesesSize;
- if (!(EnumProcesses(proceses, sizeof(proceses), &procesesSize)))
- {
- return 1;
- }
- int procesesAmount = procesesSize / sizeof(DWORD);
- printf("Proceses Size = %lu\nProceses Amount = %ld", procesesSize, procesesAmount);
- putchar('\n');
- for (int i = 0; i < procesesAmount; i++)
- {
- printf("proceses[%d] = %u\n", i, proceses[i]);
- processesModule(proceses[i]);
- }
- return 0;
- }
- void processesModule(DWORD processIn) {
- HANDLE process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processIn);
- HMODULE processModule[1024];
- DWORD spaceModulesNeed;
- TCHAR processName[128] = L"<UNKNOWN>";
- if (EnumProcessModules(process, processModule, sizeof(processModule), &spaceModulesNeed))
- {
- GetModuleBaseName(process, processModule[0], processName, sizeof(processName) / sizeof(TCHAR));
- printProcessModule(process, spaceModulesNeed, processModule, TRUE);
- }
- wprintf(L"ProcessName = %s\n", processName);
- putchar('\n');
- CloseHandle(process);
- }
- void printProcessModule(HANDLE process, DWORD space, HMODULE* processModule, BOOL option)
- {
- puts("\n------------------------MODULY---------------------------------\n");
- for (unsigned int i = 0; i < (space / sizeof(HMODULE)); i++)
- {
- wprintf(L"processModule[%u] = 0x%X\n", i, processModule[i]);
- if (option && i)
- {
- TCHAR processName[128] = L"<UNKNOWN>";
- GetModuleBaseName(process, processModule[i], processName, sizeof(processName) / sizeof(TCHAR));
- wprintf(L"ProcessDLL = %s\n", processName);
- }
- }
- puts("\n---------------------------------------------------------------\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment