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

Windows
Win7安装显示错误0XC004F061的解决
Windows7 系统格式化C盘的操作步骤
Windows7中不需要用Ghost来做备份
Windows7系统通知关闭后还显示的解决方法
Windows7 自动更新导致硬盘空间变小
IE浏览器上面的搜索框去掉方法
Windows 画图程序绘制像素小女孩头像
Windows下键盘TAB键玩法汇总
开启电脑的离开模式的设置方法
玩转Windows7系统下的XP Mode模式
禁止Windows多用户登录方式
用Windows7自带的DVD Maker制作DVD视频相册
彻底去除Win7中的UAC功能
Windows应该借鉴Linxu的10大特征小结
双系统卸载Win7系统的技巧
WinXP下锁定计算机的3种方法
Windows7为何取名叫Windows7的分析
Win7系统彻底屏蔽U盘的方法
win7资源管理器启动时的默认位置设置方法
五个Win7常见故障及其解决办法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 43 ::
收藏到网摘: 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文件,最终解决故障。