杀掉任务管理器杀不掉的进程

本文介绍如何利用ntsd命令在Windows系统中强制终止难以结束的进程。具体操作包括打开命令提示符窗口并输入特定命令,同时介绍了如何查找目标进程的PID。此方法适用于Windows 2000及更高版本。
在命令行下用ntsd -q c -p PID
只有System、SMSS.EXE和CSRSS.EXE不能杀。
前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。
NtsdNtsd 按照惯例也向软件开发人员提供。只有系统开发人员使用此命令。有关详细信息,请参阅 NTSD 中所附的帮助文件。


用法:
开个cmd.exe窗口,输入: ntsd -c q -p PID
把最后那个PID,改成你要终止的进程的ID。
如果你不知道进程的ID,任务管理器->进程选项卡->查看->选择列->勾上"PID(进程标识符)",然后就能看见了。


适用于win2000以上

补充: 在Windows Vista系统中微软已经把NTSD工具删去了~因为这个命令的权限比较高以防止病毒的滥用!

### 判断进程是否是由任务管理器结束的方法 在 Windows 系统中,任务管理器是用户常用的工具之一,用于查看和管理正在运行的进程。然而,系统本身并未提供直接标记或记录“进程是否由任务管理器结束”的机制。因此,判断一个进程是否由任务管理器结束,通常需要通过间接手段实现。 #### 1. 监控进程终止的来源 Windows 提供了多种方式用于监控进程的创建和终止。通过 Windows Management Instrumentation(WMI)或事件日志,可以获取进程终止时的相关信息,包括终止进程的用户、时间以及可能的调用来源。 例如,可以通过 WMI 查询进程终止事件,并结合事件日志分析终止操作的来源: ```powershell Get-WinEvent -LogName "System" | Where-Object { $_.Id -eq 4689 } ``` 该命令可以获取所有进程终止的日志条目,其中包括用户账户、进程 ID 和终止时间等信息。通过进一步筛选和分析,可以判断是否是任务管理器触发了进程的终止[^2]。 #### 2. 使用钩子(Hook)技术监控任务管理器的操作 任务管理器本身是一个用户界面工具,其结束进程的操作最终调用了 Windows API,如 `TerminateProcess` 或 `NtTerminateProcess`。如果需要精确判断某个进程是否由任务管理器结束,可以通过钩子技术拦截这些 API 调用,并记录调用来源。 具体实现可以使用第三方库(如 Microsoft Detours)来挂钩系统调用,记录调用堆栈,从而判断终止进程的调用者是否是任务管理器(`taskmgr.exe`)。该方法较为复杂,但可以提供较高的精度和灵活性。 #### 3. 检查任务管理器的运行状态 如果任务管理器本身正在运行,可以结合进程快照进行分析。例如,通过 `Process.GetProcesses()` 获取当前所有运行的进程列表,并检查是否存在 `taskmgr.exe` 进程: ```csharp using System.Diagnostics; Process[] processes = Process.GetProcessesByName("taskmgr"); if (processes.Length > 0) { Console.WriteLine("任务管理器正在运行"); } ``` 如果任务管理器正在运行,并且目标进程在短时间内被终止,则可以推测该进程可能是由任务管理器结束的。然而,这种方法无法提供确切的证据,只能作为辅助判断手段[^1]。 #### 4. 通过系统日志和审计功能 在企业环境中,可以通过启用 Windows 的安全审计功能,记录所有进程的创建和终止事件。启用方式如下: 1. 打开“组策略管理编辑器”。 2. 导航到 **计算机配置 → Windows 设置 → 安全设置 → 高级审计策略配置 → 系统 → 进程创建/终止**。 3. 启用 **审核进程创建/终止**。 启用后,可以在事件查看器中找到相关日志,并结合调用者信息判断是否是任务管理器触发的进程终止。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值