请问用C++如何检测指定的进程

即使该指定的进程改名后依然能被检测出来
2025-06-21 09:35:18
推荐回答(2个)
回答1:

用 system() 调用 wmic 命令
wmic 命令 可以写入 字符串变量中。

命令例子:
wmic process where name="notepad.exe" list brief
会列出所有名叫 notepad.exe (记事本)的进程
wmic process where processid="1396" list brief
会列出 进程id 1396 的 进程。
wmic process where name="paint.exe" call terminate
会停掉 所有的 paint.exe 绘图 进程。
char cmd[200];
strcpy(cmd,"wmic process list brief");
system(cmd);
列出所有进程。

回答2:

使用系统API获取所有进程的列表,再对要探测进程的exe文件进行哈希运算(比如MD5,SHA1等),把哈希值储存起来,以后如果出现一个哈希值与这个值一样的新进程就可以判定这个新的进程就是要探测的进程。

对进程的探测工作(检测线程数、获取PID等)同样可以用API实现。