






















这个程序没什么特殊的,就是用了Toolhelp库里的函数,主要是用CreateToolhelp32Snapshot建立句柄
然后分Process32First和Process32Next列举进程,然后在有参数的情况下用Module32First和Module32Next
列举对应进程所加载的模块,使用方法,直接运行pl列举进程,在查看到进程的对应pID时运行pl pID
此时则列举pID进程加载的模块,另,本程序没有加列举线程及终止进程、线程卸载模块的功能,等
有时间的时候再加上吧,应该会用到TerminateProcess/TerminateThread此类的函数,应该还会涉及到提
权的问题,有兴趣的朋友可以交流下呀。
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[]) {
if(argc==1) {
HANDLE handle = (HANDLE)CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
PROCESSENTRY32 Info;
Info.dwSize = sizeof(PROCESSENTRY32);
if(Process32First(handle, &Info)) {
printf("Process List:\n\n");
printf("%-6s\t%s", "PID", "Process Name");
do {
printf("\n%-6d\t%-10s", (int)Info.th32ProcessID, Info.szExeFile);
}while (Process32Next(handle, &Info));
}
CloseHandle(handle);
return 0;
}else {
HANDLE handle = (HANDLE)CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, atoi(argv[1]));
MODULEENTRY32 lInfo;
lInfo.dwSize
已编译版本下载地址:https://files.cnblogs.com/tobylee/pl.rar
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。