C/C++Windows黑客编程系列——获取系统进程

获取系统进程

#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>

int main() {
    // 获取系统进程快照
    HANDLE processHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (processHandle == INVALID_HANDLE_VALUE) {
        printf("获取系统进程快照错误\n");
        return 0;
    }
    PROCESSENTRY32 processentry32;
    processentry32.dwSize = sizeof(processentry32);
    // 枚举快照的第一个进程
    BOOL bProcess = Process32First(processHandle, &processentry32);
    char buff[1024] = {0};
    while (bProcess) {
        sprintf(buff, "进程名称:%s  进程号:%lu\n", processentry32.szExeFile, processentry32.th32ProcessID);
        printf("%s",buff);
        memset(buff, 0x00, 1024);
        bProcess = Process32Next(processHandle, &processentry32);
    }
    CloseHandle(processHandle);
}

输出:

进程名称:RuntimeBroker.exe  进程号:9060
进程名称:svchost.exe  进程号:12220
进程名称:gdb.exe  进程号:5028
进程名称:conhost.exe  进程号:14328
进程名称:gdborig.exe  进程号:6260
进程名称:win32.exe  进程号:3876
本作品采用《CC 协议》,转载必须注明作者和本文链接
失色天空
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!