C++ 阻止 Taskkill 关闭进程 - 如何让 Taskkill 失效
在 C++ 中,您可以使用 CreateProcess 函数来创建一个新的进程,并设置其安全属性,使其无法被任务管理器(如 taskkill)关闭。下面是一个示例代码:
#include <windows.h>
int main()
{
// 创建进程结构体
STARTUPINFO si;
PROCESS_INFORMATION pi;
// 设置进程安全属性
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
// 创建进程
if (CreateProcess(NULL, 'taskkill /F /IM target_process.exe', NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
// 等待进程结束
WaitForSingleObject(pi.hProcess, INFINITE);
// 关闭进程句柄
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
return 0;
}
在上面的代码中,我们调用 CreateProcess 函数创建一个新的进程,并执行 taskkill /F /IM target_process.exe 命令,强制关闭名为 target_process.exe 的进程。通过设置 STARTUPINFO 结构体的 wShowWindow 成员为 SW_HIDE,我们隐藏了新进程的窗口。
请注意,这种方式只是隐藏了新进程的窗口,并且阻止了任务管理器直接关闭该进程。如果用户知道进程的名称,并在命令行中手动执行 taskkill 命令,仍然可以关闭该进程。要实现完全的进程保护,您可能需要使用更高级的技术,比如使用驱动程序或系统级的安全措施。
原文地址: https://www.cveoy.top/t/topic/bRfP 著作权归作者所有。请勿转载和采集!