欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

wbpluto的技术博客

欢迎访问 wbpluto 的技术博客。
分析解决删除目标不存在的快捷方式时响应缓慢的问题

问题现象:对于那些链接目标已经不存在的程序快捷方式,不管右键单击还是按键盘上的删除键,资源管理器都会停止响应相当长一段时间,然后才弹出右键菜单或确认删除的对话框。

这个问题已经出现好几个月了,实在是让我忍耐了几个月,每次遇到都要抓狂。起先以为是Vista的BUG,但在别人电脑上也从没遇到,应该是安装的某个程序有兼容性问题。

使用过Process Monitor来进行注册表和文件访问的监视,看哪个模块或注册表键值出了问题。发现出现该问题时,Explorer.exe每隔一秒钟试图访问一次不存在的目标程序路径,发生“名称未找到”的失败访问,一共持续了十多秒(如图),没有其他什么线索:

1

而且由于Explorer.exe随着用户的一举一动在频繁的访问各处注册表和文件,要在没有线索的情况下找出访问哪个注册表键值或文件时响应缓慢很难,之前几次尝试找出真凶,都无功而返。很多人遇到这种问题可能想要重装系统,但我认为这实在是下下策,不是在解决问题,而是在逃避问题。

今天,删除快速启动栏中残留QQ音乐的快捷方式时,又遇到老问题,我决定再试一次。还是打开Process Monitor进行监视,发现在上述现象发生前夕,Explorer.exe访问了MacDrive、WinRAR、Restorator等的外壳扩展模块dll,经过逐个筛查,他们的嫌疑都被排除,其余就没有什么可疑项目了。问题模块究竟深藏何处?

偶然双击到访问QQMusic.exe发生“名称未找到”错误时的记录,打开了事件属性对话框,在那里看到“堆栈”选项卡。线索会不会在这里?

Process Monitor中的“堆栈”选项卡记录了事件发生时,执行任务的线程的堆栈状态,包括堆栈中每个帧的模块路径、内存地址,其中内核模式(Kernel-mode)的帧在前面标注“K”,用户模式(User-mode)的帧标注“U”。双击某个条目,可查看该模块的文件路径、文件描述、版本号和公司信息:

7

具体到本次访问QQMusic.exe时发生的“名称未找到”事件,堆栈列表中大都是Windows自身常见的系统文件,只有一个CmdLineExt.dll没见过。

2

查看其属性发现并非微软出品,而是Sony DADC Austria AG.,十分可疑。找到该文件所在位置,查看文件属性,发现带有Sony的数字签名,应该不是病毒,上网搜索才知道,原来它属于索尼securom ROM的版权保护组件,根据介绍来看应该是之前安装某个游戏的时候进驻我的系统的。网上还说“它已被证实对很多系统造成严重的性能问题”,看来罪魁祸首十有八九就是它。

由于这是一个dll文件,可能已通过regsvr32注册的方式注册到系统中,直接删除文件的话,可能导致系统中留有残留信息。因此首先使用regsvr32 /u 命令尝试反注册它。果然提示卸载成功:

6

然后就要删除它,可是提示文件正在被占用。

5

虽然已被卸载,但Explorer要到下一次运行时才不再调用它,因此打开任务管理器,结束Explorer进程之后再次运行,终于把CmdLineExt.dll删除掉了。现在删除已经无效的QQMusic快捷方式,迅速弹出确认删除对话框,问题果然解决了!

遇到此问题的操作系统为Windows Vista,不清楚在其他系统下是否也会遇到类似情况,如果不存在的话,那可能是SecuROM与Vista的兼容性问题。

Posted: 2008年2月22日 1:35 作者 wbpluto

评论

4j0@163.com 说:

一直对堆栈的概念不是很清楚呢,现在Itecn的强人是越来越多了啊。

太好了,O Yeah~

# 二月 22, 2008 9:30

HarryShan 说:

Securom…如此暴力…那StarForce会不会更甚?

# 二月 22, 2008 9:50

bigslowfat 说:

1.Starforce 3.4(仙剑3外传的)曾经在我见过的一台Vista电脑上面造成严重的启动滞后。

2.Starforce似乎并不会对系统启动完成之后的文件操作造成影响。

# 二月 22, 2008 19:55

ahpeng 说:

Good,非常棒的文章

有关索尼的版权保护模块,2006年时候就由大牛Mark Russinovich证实是rootkit~

# 二月 22, 2008 20:14

随便啦 说:

实在感谢万分

# 七月 8, 2008 17:44

hehe 说:

我的vista系统也出现了这个问题,十分头疼,用你的方法真的搞定了,太谢谢了。

# 九月 19, 2008 16:31

hx 说:

好文~~~~~~~~~~

我也同样遇到了该问题,我是xp的。

用了该方法,ok了~

# 十月 29, 2008 23:15

Godandsatan 说:

多谢楼主,用这个方式解决了问题!!膜拜中!!!

# 十一月 3, 2008 20:01
说说您的看法?

(必填) 

(必填) 

(可选)

(必填) 

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS