当前位置: 首页 > 图文教程 > 操作系统 > Windows > 揪出隐藏在背后的DLL黑手

Windows
体验Windows XP网络视频会议
系统出现非法操作错误解决对策
新发现:修改Win XP开机画面最简单办法
Win XP系统中玩虚拟光驱要慎重
轻松打造Windows XP系统通用镜像安装盘
真正用起Win XP系统中的休眠功能
让组策略保护Windows XP的安全
自己动手 以Longhorn方式封装 XP
轻松清除Win XP下光纤拨号设置故障
摸清 XP中“错误报告”之来龙去脉
24招Windows系统精华技巧汇总
Win XP操作系统的最另类还原技巧
让Windows数据进行安全转移技巧
妙用系统组策略锁定Win XP分区
45招Windows系统技巧总汇(上)
巧妙破除网页右键禁用的十大绝招
Windows操作系统组策略之实用技巧三则
Windows中如何找回失踪的下载提示框
45招精华Windows技巧总汇(下)
轻松卸载掉Windows Vista的办法

Windows 中的 揪出隐藏在背后的DLL黑手


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 114 ::
收藏到网摘: n/a

  在Windows中,几乎所有应用程序都会用到DLL(动态链接库)文件,它的正常与否关系到软件能否正常运行。很多软件故障也和它有直接关系。但应用程序往往会调用几十个DLL程序,怎么判断谁是“罪魁祸首”呢?  

  案例回放:在一次非法操作后,Windows XP“搜索助理”变成一张“白板”,不仅如此,“控制面板”中“用户账户”项也显得“面无表情”。点击“开始→帮助和支持”,鼠标一阵闪烁却始终不见“帮助和支持”程序界面的踪影。  

  案例分析:凭感觉,笔者认为系统中的某个DLL文件已经注销、丢失或损坏。但Windows中几乎每个程序都要调用成十上百个DLL文件,如果按常规方法一个个寻找分析,无异于大海捞针。考虑到三个程序同时“毁容”,应该是受同一个(或几个)DLL文件的影响。为此必须找到上述这三个程序共同使用的DLL文件,然后,从中找出“幕后真凶”。  

  查找与比对 

  第一步:先从“搜索助理”入手,先弄清其“身世来历”。在另外一台装有Windows XP的机子中打开“搜索助理”,同时按Ctrl+Alt+Del键调出“任务管理器”,在“应用程序”选项卡中,选中“搜索助理”并右击,选择“转到进程”,呵呵,原来它是Explorer.exe(资源管理器)的一部分。  

  第二步:用类似方法可得知“帮助和支持”属于进程Helpctr.exe,但在“用户账户”中只能用观察比较的方法查出其归属进程mshta.exe。  

  小提示  

  可通过打开、关闭“用户账户” 的方法比较“任务管理器”中的变化来确定其所属的进程;也可以在打开“搜索助理”时,在“命令提示符”中输入“tasklist /fo table>C:acc1.txt”,在关闭该程序后,在“命令提示符”中输入“tasklist /fo table>C:acc2.txt”,然后用fc命令进行比较“fc C:acc1.txt C:acc2.txt>C:acc.txt”,比较得出的多余项即为该程序所属的进程。  

  第三步:重启电脑,下面要请软件LISTDLLS出场了。到这里下载该软件,然后将listdlls.exe移动到C:Windows,按Ctrl+R打开“运行”框,输入“cmd”,在“命令提示符”中输入:  

  listdlls -r explorer.exe>C:explorer1.txt。

  接着打开“搜索助理”,再次在“命令提示符”中输入:listdlls -r explorer.exe>C:\explorer2.txt  

  最后用fc命令进行比较:  

  fc C:\explorer1.txt C:\explorer2.txt>C:\explorer.txt。  

  这样打开C:\explorer.txt文件,对比后多出的文件即是“搜索助理”调用的DLL文件。  

  小提示  

  ListDlls的用法为:listdlls [-r] [processname  

  pid]或listdlls [-r] [-d dllname]  

  第四步:重启电脑,用命令“listdlls -r helpctr.exe>C:\helpctr.txt”得到“帮助和支持”所使用的DLL文件。此处重启是为了使已经没有使用的DLL文件从内存中卸载。  

  第五步:再次重启,用命令“listdlls -r mshta.exe>C:\mshta.txt”得到“用户账户”使用的DLL文件。  

  筛选最后“真凶”  

  分析explorer.txt中的DLL文件,其中文件目录中含有“srchasst”的,均为“搜索助理”单独调用的文件。剩余的文件分别为C:\Windows\system32目录下的sxs.dll、vbscript.dll、jscript.dll文件。用“搜索”的方法可以发现文件helpctr.txt和mshta.txt中均存在上述文件,看来“罪魁祸首”非这三者莫属。  

  回到原来的电脑,发现三个文件均存在,也并未损坏。用命令regsvr32命令分别进行注册。果然,在对其中的jscript.dll文件的进行注册后(使用命令 regsvr32 jscript.dll),“白板”程序终于恢复其美丽的“容颜”。  

  小编有话说:  

  系统很多软件故障都是由DLL文件引起的。以前我们往往更关注DLL文件是否丢失,其实还有很多原因是没有注册成功造成的。看了本文介绍的方法,我们就可以很容易地筛选出造成故障的DLL文件,最终解决故障。