开机出现RUNDLL加载时出错,找不到相应模板,却没显示是什么dll出错

[复制链接]
查看11 | 回复2 | 2010-4-17 18:03:24 | 显示全部楼层 |阅读模式
加载C:\windows\*.dll错误一、分析:我们知道系统所实现的功能都是靠一系列的“进程”加载dll、sys等这些模块来实现的,例如我们开机后进入系统接触到桌面,上面有“开始”按钮,有“我的电脑”等图标,就是靠特定的dll文件来实现的。我们安装软件后实现的一些功能也是如此,通过自身的“模块”让这些系统进程加载,从而实现软件的功能(比如金山词霸的即指即译功能就是通过其某个dll插入到相应的进程中实现的)。恶意软件、病毒想实现其的目的靠的也是这一招(当然其招数可能隐蔽得多),通过一系列的伪装手段使自身的这些模块让系统进程认为是开机必须加载的,从而实现在开机加载,实现病毒的目的。而这些模块一旦由于一些意外的原因(比如杀毒软件的查杀、卸载不完全)导致其加载信息还在,但文件却没有了。系统进程却还是“天真”地认为这个模块是必须加载的,但又找不到这个文件了,所以按“惯例”,它给出提示“加载c:\windows\*.dll错误中,找不到指定模块”等等。二、处理:知道了大致的原因,我们可以处理了:由于是文件可能没有了,但加载信息还存在导致的这样的错误,那么我们将这个加载信息删除掉就可以了。现在网上处理的方法一般有2种:⑴、开始——运行——msconfig——启动——把你这加载项***.dll的那个勾勾去掉。 重启电脑,通常到这就可以了,如果还弹出来再进行第二步;这一种方法无可厚非,但许多新手按照这样的教程操作的话,输入Msconfig,打开“系统配置实用程序”后发现,在“启动”里根本找不到什么“加载*.dll”的项目。这是因为dll只是一个模块,上面说过了,它由进程加载,自身是并不能运行的。在这一步上,其实我们应该查看“启动”项下有没有“Rundll32.exe”这个进程,有的话,查看这个进程的路径,看它加载的是哪个dll,如果这个dll确实是错误提示中提到的这个文件,那么将它取消才是正解! ⑵、开始——运行——regedit 在下面的位置删除相应键值: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 这种方法也对,但不全对。现在的病毒制造者不会白痴到只在这2个键值下写入了。因此搜索整个注册表才是正解!下面说说我碰到这样的错误提示后的做法(至少在我的机器上经过试验是有效的):1.用IceSword、Wsyscheck这些软件按提示中的路径到这个文件夹下查看有无这个dll文件,有的话,在软件里右击这个文件,删除它们!然后断开网络,全盘查杀病毒!并最好是到安全模式下或WinPE模式下查杀!---建议采用WinPE下杀毒的方法。2.如果没有,则说明这个dll因为一些不可知的原因已经被删除了(最大的可能是因为它是病毒释放的文件,但已经被杀毒软件清除了),但留在注册表里的加载信息却没有得到清除,导致系统不断地尝试加载这个文件却又找不到文件,出现加载出错提示! 这样的话,只要清除注册表里的加载信息即可。在开始运行里输入Regedit打开注册表,搜索并删除这个dll的键值即可。 如果你嫌一个一个搜索-删除麻烦,也可以用Autoruns这个软件来清除,安装后,直接在这个软件的“所有项目”下的“映像路径”中找到这个dll文件(一般也是提示:没有找到文件:**.dll),右击--删除即可。然后重启一般就可以了。如果这样处理后,还是不行,那么对不起,我也不知道原因了。参考资料:http://zhidao.baidu.com/question/133931870.html

已赞过已踩过<
回复

使用道具 举报

千问 | 2010-4-17 18:03:24 | 显示全部楼层
那就不好判断是哪一个系统文件有问题了,建议重装系统!
回复

使用道具 举报

千问 | 2010-4-17 18:03:24 | 显示全部楼层
最好是重装系统
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行