艾丽娅的狼:rundll32是什么?

来源:百度文库 编辑:高校问答 时间:2024/05/07 08:52:49
今天在我闪盘里发现了一个名字为rundll32的文件,我也不知道是什么东西。请大虾们指点,是不是病毒呀?

在处理一些系统问题的时候,大家可能会经常遇到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来调用执行的。

进程文件: rundll32 or rundll32.exe
进程名称: Microsoft Rundll32
进程类别:其他进程
英文描述:

rundll32.exe is a process which executes DLLs an places their libraries into the memory, so they can be used more efficiently by applications.This program is important for the stable and secure running of your computer and should not be terminated.
中文参考:
rundll32.exe用于在内存中运行DLL文件,它们会在应用程序中被使用。这个程序对你系统的正常运行是非常重要的。注意:rundll32.exe也可能是W32.Miroot.Worm病毒。该病毒允许攻击者访问你的计算机,窃取密码和个人数据。该进程的安全等级是建议立即删除。
出品者:Microsoft Corp.
属于:Microsoft Windows Operating System
系统进程:Yes
后台程序:Yes
网络相关:No
常见错误:N/A
内存使用:N/A
安全等级 (0-5): 0
间谍软件:No
广告软件:No
病毒:No
木马:No

这个文件应该是Rundll32.exe,正常的话它应该是不会在移动设备里出现的,具体的上面几位讲得很清楚了。因此判断多半是个病毒。你直接删除它试试(估计是无法删除)
如果这样,你可以直接在杀木马的软件定位到U盘杀杀看