Jam*_*mes 9 drivers process-monitor
我有时会使用Process Monitor来调试软件,也会在线玩游戏。其中一些游戏使用BattlEye反作弊软件,该软件在系统上启动 Process Monitor 后拒绝允许游戏运行,并在日志中显示:
08:06:46: Starting BattlEye Service...
08:06:49: Launching game...
08:07:07: Disallowed driver: "\??\C:\Windows\system32\Drivers\PROCMON23.SYS". Please unload it or reboot your system.
Run Code Online (Sandbox Code Playgroud)
关闭进程监视器后驱动程序保持加载状态,并且似乎没有卸载它的选项。
其他几个问题有关于使用net stop
或卸载驱动程序的答案sc stop
,但 ProcMon 驱动程序不是服务,因此这不起作用。我也试过在设备管理器中查看并启用“显示隐藏的设备”,但没有出现与 ProcMon 相关的条目。我无法删除驱动程序文件,因为它实际上并不存在于文件系统中;ProcMon 将文件存储在其可执行文件中并根据需要提取它。
我的问题不是这个问题的重复,这是关于一个类似的问题,即驱动程序在重新启动后仍然存在。我的问题是关于在不重新启动的情况下卸载驱动程序。
标准驱动程序是服务,您确实可以通过net
和控制它们sc
。(例如,看看sc query beep
- 停止“哔”驱动程序是关闭内部 PC 扬声器的常用方法。)
在早期的Process Monitor版本(可能是预先2.3,当它仍然支持Windows XP),它会安装一个“传统”设备驱动程序是通过看得见sc
,设备管理等。
当前版本的 Process Monitor 似乎在启动驱动程序后立即从注册表中删除驱动程序/服务配置。您可以通过监视 ProcMon 本身来看到这一点。可以使用类型 2(内核 FS 驱动程序)手动重新添加服务,它会立即显示为已在运行。
但是,该服务还将报告“NOT_STOPPABLE”并拒绝任何停止尝试。
此外,PROCMON23 现在通过过滤器管理器 (FltDrv)将自己注册为文件系统微型过滤器驱动程序。您可以在 的输出中看到它fltmc
,但尝试从外部卸载它也会失败(可能是因为驱动程序没有卸载例程):
C:\WINDOWS\system32>fltmc 过滤器名称实例数高度框架 ------------------------------ ------------- ------- ----- ----- PROCMON23 0 385200 0 WdFilter 4 328010 0 storqosflt 0 244000 0 wcifs 1 189900 0 ... C:\WINDOWS\system32>fltmc 卸载 PROCMON23 卸载失败,错误:0x801f0010 此时不要从卷上拆下过滤器。
由于“官方”CLI 工具无法从 FltMgr 中删除过滤器,并且 FltMgr本身是一个“关键”驱动程序,必须重新启动才能重新启动,因此似乎无法卸载 PROCMON23 或 PROCMON24。
但最有趣的部分:在用procmon 3.40做上述检查后,我发现网站上的最新版本是3.50(它使用了较新的PROCMON24驱动程序)。在启动新版本时,我被告知系统上已经存在旧版本的驱动程序,我应该重新启动。
因此,如果 ProcMon本身无法在不需要重新启动的情况下卸载它自己的驱动程序,我认为您可以放心地假设您也无法卸载它。
除了user1686的出色回答得出的结论是无法卸载它之外,我想补充一点,Windows 10 上的正常重新启动也没有帮助,因为现在的 Windows 10 会保留一些内存并在启动时重新加载它,因此即使重新启动后驱动程序也会保留在内存中。
为了避免这种情况,请以管理员身份运行以下命令重新启动:
shutdown /r /f /t 0
Run Code Online (Sandbox Code Playgroud)
这将执行正确的重新启动。通过以管理员身份运行来检查fltmc
驱动程序是否不再存在。
有问题的PROCMON23.SYS
过滤器驱动程序由 ProcMon 在运行时安装。如果该文件
C:\Windows\system32\Drivers\PROCMON23.SYS
当时不存在,则 ProcMon 将写入它。文件PROCMON23.SYS
本身作为二进制资源包含在 ProcMon 的可执行文件中。
您可以通过以下方式列出所有正在运行的过滤器驱动程序:
fltmc filters
Run Code Online (Sandbox Code Playgroud)
在我的电脑上这给出了:
正如您所看到的,我的 Process Monitor 版本比您的版本新(24 而不是 23)。
通常可以通过以下命令卸载过滤器驱动程序:
Fltmc unload PROCMON24
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,这会给出提升的命令提示符:
卸载错误 0x801f0010 是没有卸载例程的微型筛选器驱动程序的典型错误。
结论:PROCMON23.SYS 和后来的 PROCMON24.SYS 编程错误。开发人员没有预见到有人会希望卸载他的驱动程序,并且没有在其中包含必要的例程。因此无法卸载该驱动程序。
对您来说坏消息是需要重新启动才能处理它,没有其他方法可以完成这项工作。你唯一的办法就是向开发商投诉。
归档时间: |
|
查看次数: |
10877 次 |
最近记录: |