空调lplv是什么意思:rundll32是什么东西,进程都不能杀.

来源:百度文库 编辑:高考问答 时间:2024/04/26 19:11:39
是病毒吗

在处理一些系统问题的时候,大家可能会经常遇到RUNDLL32.EXE这个程序,并且它经常和一些病毒和恶意程序有关,所以大家可以会认为它不是个好东西,但其实这是大家对RUNDLL32.EXE的不了解,现在我来给大家简单地介绍一下RUNDLL32.EXE这个工具和它的性质,相信大家以后就不会这么想。

RUNDLL32.EXE,在WIN9X上还有另一个类似的工具RUNDLL.EXE,是WINDOWS操作系统自带的工具,它们本身并不提供给用户什么实质性的应用功能,要了解RUNDLL32.EXE的作用,就得先从DLL(动态连接库)说起。

大家一定都知道,我们的WINDOWS系统里面有很多DLL,这些DLL提供一些很多软件要用到的功能,这样系统中只要存在某一个DLL,所有调用这个DLL里面的功能的程序,就不用把这个功能包含在他们自己里面,这些程序只要调用这个DLL里面的功能就行了,这就是对DLL的简单解释。归纳起来,DLL就是一个包含了一个或多个功能模块,给其他应用程序调用的功能库。

一般来说,在WINDOWS中,可执行文件的扩展名是EXE,而DLL文件是不能直接执行的,这不仅仅是因为DLL文件的扩展名和可执行文件不一样,而且它们的结构也是不一样的。正常情况下,是由一个程序文件调用某个DLL里面的某个模块,来实现这个模块的功能,但有时候需要单独执行DLL中某个有用的模块,怎么办呢?于是MS就在WINDOWS中提供了RUNDLL工具,就是由它调用某个DLL里面的某个模块,来实现这个DLL里面的被调用模块的功能。MS给它们的说明是:Run a DLL as an App,就是把一个DLL当成是一个应用程序来运行。

所以,RUNDLL本身并不向用户提供什么功能,单独运行它并没有什么作用,所以在运行时要指定一个DLL作为参数,并且一般还要指定要运行的是DLL里面的哪一个模块。举个例子来说,在WIN9X里面,很多系统提供的重要功能是放在一个叫user.exe的动态连接库里面,虽然它的扩展名是exe,但它事实上是一个动态连接库。而我们关机的时候其实就是由EXPLORER.EXE去调用这个user.exe里面一关机模块。知道了这些之后,我们就可以在桌面上建立一个快速关机的快捷方式,只要在桌面上点右键-新建-快捷方式,命令行输入这样的内容:RUNDLL32.EXE user.exe,exitwindows,再给这个快捷方式定个名字如快速关机就行了。其实这样就是用RUNDLL32去调用USER.EXE里面的EXITWINDOWS模块,这样就达到了建立关机快捷方式的目的。其实这个命令行意思就是告诉RUNDLL32,把USER.EXE这个动态连接库里面的exitwindows这个模块,当成一个应用程序来运行,就这么简单。要注意的是,在RUNDLL32后面的参数,第一个是要调用的动态连接库的文件名,后面紧跟一个逗号,再紧接着是这个动态连接库里面的模块名称,两个参数和逗号之间不能有空格。

明白了上面我所说的之后,你就知道RUNDLL32是什么样的性质,其实它是MS随WINDOWS系统提供的一个工具,它不是病毒和恶意程序,只是由于它的性质的关系,经常被一些病毒或恶意程序所利用,例如3721就是利用RUNDLL32来加载它的helper.dll和cnsmin.dll,来达到它的目的。因此,在启动项里面看到RUNDLL32不要吃惊,并不是很奇怪,甚至WINDOWS自己也会在启动时用RUNDLL32来调用它的电源管理模块,一般在WIN9X系统中,启动项都有这么一项(或者两项):
位置:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
键名:LoadPowerProfile
键值:Rundll32.exe powrprof.dll,LoadCurrentPwrScheme

但另外要注意的是,正常情况下,RUNDLL32运行后是不会驻留的,例如上面说的这一项,虽然是在启动时运行了,但RUNDLL32运行后不会驻留在内存,另外象NVIDIA显卡的驱动,安装后也会在启动时用RUNDLL32调用它的驱动的一些DLL来实现某些功能,但它们都不会驻留。所以当按CTRL_ALT_DEL时,不会看到RUNDLL32这样的进程。包括WIN2K和WINXP,正常的系统,在启动完成后,在进程列表里面应该是看不到有RUNDLL32项的,如果平时在进程列表中有看到RUNDLL32这样的项,那么应该是一些其他的程序调用了RUNDLL32,而且就很有可能是一些恶意程序或恶意插件了,所以要引起注意。

另外,在WIN9X系统上,有一个RUNDLL.EXE和一个RUNDLL32.EXE,我个人的理解是,它们的作用是一样的,只是用于不同格式的DLL,RUNDLL是用于16位格式的DLL,RUNDLL32是用于32位格式的DLL,不知道我的理解有没错。
还有,关于某个DLL里面到底提供了哪些模块供其他软件调用,一般可以用RESSCOPE或EXESCOPE之类的资源编辑软件来打开这个DLL,看它里面的EXPORT项里面就是和外输出的模块的名称。但要注意的是,不是每一个DLL里面的每一个模块都能用RUNDLL32来调用执行的。