我在Windows 7计算机上看到奇怪的行为;看起来,当可执行文件运行时,SYSTEM会在下一分钟左右将其句柄保持打开状态。这是我最近的遭遇:
我安装了Steam,它将在安装后启动steam.exe进行更新。这样做似乎是通过编写自身的临时副本,启动该副本以执行下载,然后覆盖可执行文件的原始副本来完成的。以我为例,这失败了,声称无法删除steam.exe。
我打开文件夹并尝试手动删除steam.exe,但是Windows声称我没有权限。我的帐户是管理员,并且是此计算机上的唯一用户帐户。但以防万一,我以管理员身份启动了Explorer,但仍然无法删除该文件。我将文件的“属性”调到“安全性”选项卡,但只显示一条消息,表明我无权查看权限。
接下来,我调出Process Explorer来查看文件是否有锁。SYSTEM(PID 4)可以,但是当我尝试关闭文件句柄时,它产生了一个错误,指出该句柄无效。我试图查看文件句柄属性,但是我也没有这样做的权限。
我终止了除了无法确定的系统进程之外的所有内容,并停止了我能够提供的所有服务,包括与AV和防火墙相关的所有内容,但是问题仍然存在。我曾尝试使用'takeown'来授予自己文件的所有权,但它声称我无权这样做。其他人声称使用“ Unlocker”工具已成功,但是在关闭文件句柄方面,它与Process Explorer存在相同的问题。
我很早以前就禁用了Windows索引和搜索功能,并从索引中排除了C:\,所以这个问题的答案不适用于我。
每次大约一分钟后,句柄都会消失,文件会立即删除;显然,更新程序删除文件的尝试已排队,并在文件不再锁定后最终完成。不幸的是,更新已终止,无法恢复。而且,当我重新安装时,它当然会尝试再次运行steam.exe,现在回到第一个问题。
我的问题是:为什么这些手柄在周围徘徊,如何防止它们晃动?
编辑:这是评论中要求的其他信息:
C:\>fltmc instances
Filter Volume Name Altitude Instance Name Frame VlStatus
-------------------- ------------------------------------- ------------ --------------------- ----- --------
KLIF \Device\Mup 320400 KLIF 0
KLIF C: 320400 KLIF 0
KLIF 320400 KLIF 0
luafv C: 135000 luafv 0
FileInfo \Device\Mup 45000 FileInfo 0
FileInfo C: 45000 FileInfo 0
FileInfo 45000 FileInfo 0
编辑:GMER指示我的防病毒软件(Kaspersky)仍然处于活动状态,尽管已从其自己的GUI禁用了它,并且其服务已停止。
AttachedDevice \Driver\tdx \Device\Ip kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice \Driver\tdx \Device\Tcp kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice \Driver\tdx \Device\Udp kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice \Driver\tdx \Device\RawIp kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
但是这些似乎都是为了网络服务。我没有看到与文件系统有关的任何内容。这些可能是问题的原因吗?
编辑:我禁用了卡巴斯基KLIF过滤器,但锁定问题仍然存在。
编辑:我通过安装解决Steam的特定问题,在启动Steam.exe之前强制终止安装程序,然后以安全模式重新启动并在其中运行。因此,显然在安全模式下不存在任何锁定可执行文件的内容。
尽管我已经解决了这种特殊情况,但是问题也在其他地方出现,因此我仍然想了解发生了什么。
fltmc
这些过滤器是否为旧式过滤器,您需要使用GMER之类的工具来列出过滤后的对象。我知道这不是GMER的主要目的,但可以通过这种方式使用。OSR也曾经有一些工具,但是我不记得它的名字了。如果我记得的话会再次答复。