首页 新闻 安徽 体育 财经 黄梅 旅游 军事 娱乐 法治 教育 伊人 健康
繁体中文
 IT 彩信 读书 汽车 演艺 音乐 徽商 书库 邮件 论坛 贺卡 相册 交友
简体中文
精彩图库 业界动态 观察分析 手机数码 电脑教室 软件下载 游戏人间 本地市场
精彩推荐
v戴尔发布超低价笔记本 5999元冲击市场
v盛大购新浪股票 陈天桥谈盛大帝国开局战
v联想收购IBM PC业务通过美国政府批准
v好莱坞巨头来华接洽 EVD有望获千部影片发行权
v民建中央质疑电信收费 呼吁取消固话月租费
v专为巾帼准备 职业商场女性手机精选导购
v有多少机可以重来 2004年遗憾机型回顾
v肯定能让人绝倒的《三国无双》武将图
v《帝国时代3》GDC精美游戏画面全剖析
精彩图片
  您当前的位置 :IT地带 > 电脑教室 > 操作系统 正文
教你揪出系统中胡作非为的DLL黑手

中安网  2005-03-25 16:23

  《电脑爱好者》3月23日报道 在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] [processnamepid]或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文件,最终解决故障。(文/周玲生)

编辑: 丁毅
 ∷【相 关 报 道】∷
-关于动态嵌入式DLL木马病毒的发现及清除   04-12-02 11:23
-rundll32.exe 实现人性化定时关机有绝招   04-09-24 12:23
-捷径:巧用Rundll32安装和卸载Windows程序   04-07-09 17:29
-鲜为人知的安装与卸载绝技:巧用Rundll32命令   04-07-01 14:40
-当 Windows XP无法找到Rundll32.exe   03-10-16 15:36
 

中国安徽在线网站(中安在线)版权所有 未经允许 请勿复制或镜像
皖ICP证 030106号