╋艺 镇╋╋论坛の释疑╋┣◇玩转系统 → [维护]如何清除3721?CnsMin.dll 顶 热 ★★★


  共有17442人关注过本帖树形打印复制链接

主题:[维护]如何清除3721?CnsMin.dll 顶 热 ★★★

美女呀,离线,留言给我吧!
admin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27515 威望:0 精华:7 注册:2003/12/30 16:34:32
[维护]如何清除3721?CnsMin.dll 顶 热 ★★★  发帖心情 Post By:2008/5/5 8:58:45 [只看该作者]

如何清除3721?CnsMin.dll 顶 热 ★★★
  
  [ 作者:佚名 转贴自:本站原创 点击数:7348 更新时间:2004-12-2 文章录入:jalihh ]
  减小字体 增大字体
  
  近日接到内网用户来报,在上到某些站点的时候,会被提示安装一个叫3721中文实名的插件,部分用户在不知情的情况下误点“安装”选项,导致该病毒驻留于硬盘上难以杀除。天缘虽是网络管理员,但是对Windows操作系统的确使用得不多,从来也没有用过这个名为3721的插件,但看到用户们焦急地神情,于是答应尽力而为。经过几番努力,终于将其斩于马下。 以下是杀除该病毒得经历及病毒解决方案。
  
  天缘使用一台windowsxp机器,访问用户提供的站点,下载并执行了该插件。该插件为中文,自动安装后重新启动机器后生效,并自带卸载功能。通过安装/卸载前后的对比观察,其驻留性、自身保护性及对系统性能的大量损耗,让天缘确定了该插件确是病毒无疑!
  
  病毒发作现象:
  
  自动将浏览器的“搜索”功能重定向到一个叫www。3721。com的网站,该站点为中文站,且无法修改;
  
  强行在用户ie上添加“情景聊天”、“上网加速”等几个图标;
  
  不断刷新注册表相关键值,以达到成功驻留和大量消耗用户主机资源的目的;
  
  每次启机加载,并自带进程保护功能,在正常地windows启动下难以杀除;
  
  带自动升级功能,每次用户上网使用ie时,该病毒会后台执行升级;
  
  病毒自身特点:
  
  自带卸载功能;该病毒为达到隐藏自身目的,麻痹下载插件用户的目的,提供了卸载程序。但根据天缘的使用情况发现,在卸载后,该病毒程序依然驻留,启动时仍然加载,依然监视、改写注册表;
  
  采用网络升级方式;该病毒为了防止用户以及杀毒软件的杀除,采取定期网上升级的方式,这点与近期的其他Windows主流病毒类似,但值得一提的是该病毒建有公开的病毒升级站点www。3721。com,且站点风格酷似门户、服务类站点,具有极大的欺骗性;
  
  以驱动模式加载;该特性可说是近段时期以来病毒编写的一次技术飞跃,采用驱动模式加载配合挂接hook的方式,在windows下极难查杀(详细技术讨论见后);
  
  提供在浏览器地址栏中输入中文后转到其站点进行关键字查询的搜索服务。前段时间的冲击波克星病毒也曾在感染用户机器后自动连接用户的机器到update.Microsoft.com下载补丁,看来新的病毒越来越多地喜欢提供一些另类功能了;
  
  被动方式传播:利用一些站点来进行传播,而不是主动感染其他机器,这点与当前热门的“美女图片”病毒的方式相近。从主动转向被动,可说是今年一些病毒的新特点。
  
  病毒详细分析:
  
  当用户访问站点的时候,弹出一个控件下载窗口提示用户下载安装,表面上称自己是提供中文实名服务,引诱用户安装;
  
  在安装过程中多处修改用户文件及注册表;
  
  添加文件:
  
  在Documents and SettingsAll Users「开始」菜单程序网络实名 目录下添加:
  
  了解网络实名详细信息。url 86 字节
  
  清理上网记录。url 100 字节
  
  上网助手。url 99 字节
  
  卸载网络实名。lnk 1,373 字节
  
  修复浏览器。url 103 字节
  
  在WINDOWSDownloaded Program Files 下添加:
  
  assis.ico 5,734 字节
  
  cns02.dat 1,652 字节
  
  CnsHook.dll 56,320 字节
  
  CnsMin.cab 116,520 字节
  
  CnsMin.dll 179,712 字节
  
  CnsMin.inf 378 字节
  
  sms.ico" 6,526 字节
  
  yahoomsg.ico 5,734 字节
  
  在WINDOWSSystem32Drivers 目录下添加:
  
  CnsminKP.sys
  
  添加注册表键值:
  
  增加HKEY_LOCAL_MACHINESOFTWARE3721 主键,下设多子键及属性值;
  
  在HKEY_LOCAL_MACHINESOFTWAREClassesCLSID 主键下增加
  
  两个子键
  
  在HKEY_LOCAL_MACHINESOFTWAREClasses主键下增加
  
  CnsHelper.CH
  
  CnsHelper.CH.1
  
  CnsMinHK.CnsHook
  
  CnsMinHK.CnsHook.1四个子键
  
  在HKEY_LOCAL_MACHINESOFTWAREClassesInterface主键下增加子键
  
  在HKEY_LOCAL_MACHINESOFTWAREClassesTypeLib主键下增加
  
  在HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerAdvancedOptions主键下增加!CNS子键
  
  在HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions 主键下增加
  
  五个子键
  
  在HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerSearch主键下增加
  
  CustomizeSearch
  
  OcustomizeSearch
  
  SearchAssistant
  
  OsearchAssistant 四个子键
  
  在HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionExplorerShellExecuteHooks主键下增加子键
  
  在HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionRun下增加CnsMin子键
  
  在HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionRunOnce下增加EK_Entry 子键 (提示,这个键将在下次启动机器的时候生效,产生最令人头疼的部分,后文会叙述)
  
  在HKEY_LOCAL_MACHINESOFTWAREMicrosoft WindowsCurrentVersionUninstall下增加CnsMin 子键
  
  在HKEY_CURRENT_USERSoftware下增加3721子键
  
  在HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain下增加
  
  CNSAutoUpdate
  
  CNSEnable
  
  CNSHint
  
  CNSList
  
  CNSMenu
  
  CNSReset
  
  在重新启动计算机后,上面提到的RunOnce下的EK_Entry生效,在注册表中多处生成最为邪恶的CnsMinKP键值,同时在系统盘的windows/system32/drivers目录下生成CnsMinKP.sys文件,噩梦由此开始。
  
  由于win2k/xp在启动的时候(包括安全模式)默认会自动运行windows/system32/drivers下面的所有驱动程序,于是CnsMinKP.sys被加载,而这个驱动的作用之一,就是保证windows/ Downloaded Program Files目录下的Cnshook.dll和CnsMin.dll以及其自身不被删除;Cnshook.dll的作用则是提供中文实名功能,CnsMin.dll作用在于使其驻留在ie进程内的时候。CnsMin为了保证自己的优先级最高,用了一个定时器函数反复安装钩子,因此造成系统性能下降,在天缘测试的那台机器上,使得性能大概下降了20%左右。而且由于hook强行挂接的原因,当用户使用断点调试程序的时候将会导致频繁出错,这一点与早期版本的cih导致winzip操作和无法关机类似(关于详细的技术细节,可参看题目为《[转载]3721驻留机制简单研究》一文,原作者Quaful@水木清华)
  
  防删除特性:
  
  该病毒虽然自带一个所谓的“卸载程序”,但事实上核心部分的程序/注册表键值依然没有删除。而且该病毒更是利用各种技术手段,具有极其强大的反删除特性。
  
  windows系统启机(包括安全模式下)便会加载windows/system32/drivers下的CnsMinKP.sys,该驱动该驱动程序过滤了对其自身及相关重要文件和注册表的删除操作。每当试图删除3721的关键文件和注册表项时,直接返回一个TRUE,使Windows认为删除已经成功,但文件和注册表实际上还是在那里。
  
  技术亮点:
  
  天缘不得不承认,3721这个病毒插件可称我作为网管以来面对的最难清除的病毒。近几年来病毒有几次质的突破:cih感染可升级的bios、红色代码打开windows的共享扩大战果、meliza让我们见识了什么是看得到源程序的病毒、mssqlserver蠕虫让我们留意到计算机病毒能攻击的不光是节点还有网络设备、冲击波病毒让我们认识到大量使用同一种操作系统时在出现安全漏洞时的可怕、美女图片病毒让我们知道了将欺骗艺术与软件漏洞结合的威力、而这次3721病毒首次展现了病毒强大的反删除特性,可说是在windows环境下无法杀除的病毒。虽然这是个良性病毒,对系统并没有破坏特性,但依据病毒的发展史,可以预见,这种几近完美的反删除技术将很快被其他病毒所利用,很快将被其他病毒所利用。届时结合网络传播,局网感染带强大反删除功能的病毒或许会让目前windows平台下的杀毒软件遭遇到最大的考验。而这次经历,也让我意识到微软的windows操作系统在人性化、美观化、傻瓜化的背后的危机。作为it同行,我个人对3721病毒作者所使用的种种技术表示钦佩,但新型病毒的潘多拉魔盒,已经被他们打开。
  
  在目前已知的病毒历史上,之前只有几种病毒利用过windows nt下的system32/drivers 下的程序会被自动加载的特性来进行传播,但那些病毒本身编写地不够完善,会导致windows nt系统频繁蓝屏死机,象3721插件病毒这样完美地加载、驻留其他进程,只消耗主机资源,监测注册表及关键文件不导致系统出错的病毒,国内外尚属首次,在技术上比以前那些病毒更为成熟;
  
  如同天缘和大家曾经探讨过的没打sp2以上patch的win2k如何上网下载sp4再安装补丁这样的连环套问题一样。由于drivers目录下的CnsMinKP.sys启机必定加载,而欲不加载它,只有在windows启动后,进注册表改写相应的CnsMinKP键值或者删除该文件,但由于CnsMinKP.sys过滤了对其自身及相关重要文件和注册表的删除操作。每当试图删除3721的关键文件和注册表项时,直接返回一个TRUE,使Windows认为删除已经成功,但文件和注册表实际上还是在那里。使得注册表无法修改/文件无法被删除,让我们传统的杀除病毒和木马的对策无法进行。
  
  驻留ie进程,并自动升级,保证了该病毒有极强大的生命力,想来新的杀除方法一出现,该病毒就会立即升级。Windows上虽然还有mozilla等其他浏览器,但由于微软的捆绑策略和兼容性上的考虑,绝大多数用户一般只安装有ie.上网查资料用ie,寻找杀除3721资料的时候也用ie,如此一来,3721抢在用户前面将自身升级到最新版本以防止被杀除的可能性大大增加,更加增添了杀除该病毒的难度。或许在本文发出后,病毒将会在最短时间内进行一次升级。
  
  附带其他“实用”功能。天缘记得早年在dos下的时候曾遇到一些病毒,在发作的时候会自动运行一个可爱的屏幕保护,或者是自动替用户清理临时文件夹等有趣的功能;后来在windows平台上也曾见过在病毒发作时自动提醒“今天是xx节,xx年前的今天发生了xx历史典故”这样的带知识教育意义的病毒;而3721病毒则是提供了一个所谓的中文域名与英文域名的翻译功能。随着病毒的发展,这样带隐蔽性、趣味性和欺骗性的病毒将越来越多。例如最近的邮件病毒以微软的名义发信,或以re开始的回信格式发信,病毒编写的发展从原来的感染传播、漏洞传播、后门传播逐步向欺骗传播过渡,越来越多的病毒编写者意识到社会工程学的重要性。或许在不久的将来,就会出现以简单的网络游戏/p2p软件为掩饰的病毒/木马。
  
  极具欺骗性:该插件在win98下也能使用,但使用其自带的卸载程序则可比较完美地卸载,而在win2k/xp平台下卸载程序则几乎没用。由此可以看出病毒编写者对社会工程学极其精通:当一个人有一只表时他知道时间;而当他有两只表时则无从判断时间。当在论坛/bbs上win2k/xp的用户提到此病毒无法删除的时候,其他win2k/xp用户会表示赞同,而win98用户则会表示其不存在任何问题属于正常程序的反对意见。两方意见的对立,影响了旁观者的判断。
  
  商业行为的参与。据传该病毒是由某公司编写的,为的是进一步推销其产品,增加其访问量和申请用户。这点上与某些色情站点要求用户下载xx插件,之后不断利用该插件弹出窗口进行宣传的方式很象。天缘不由得想起一个典故。话说当年某公司公司工作人员(当然也有可能是不法者冒充该公司的工作人员)经常打电话恐吓大型的企业单位,无外乎说其中文域名已被xx公司抢注,如不交钱将会导致xx后果云云。兄弟学校中似乎也有受到此公司骚扰的经历:该公司员工打电话到某高校网络中心,起初是建议其申请中文域名,其主任很感兴趣但因价格原因未果。第二次打来的时候,就由劝说变成了恐吓,说该校中文名字已经被xx私人学校注册,如果该校不交钱申请就会有种种可怕后果云云。谁想该校网络中心主任吃软不吃硬,回话:“你既然打电话到此,想来你也知道在中国,xx大学就我们一所是国家承认的,而你们公司在没有任何官方证明的情况下就替申请我校中文域名的私人学校开通,就这点上就可见你们的不规范性,那么如果我私人交钱申请xxx国家领导的名字做个人站点是不是贵公司也受理?遇到类似冒用我校名义行骗及协助其行骗的公司,我们一贯的做法是寻找法律途径解决!”回答甚妙,当然此事后果是不了了之。从相关报道中不难看到,计算机犯罪逐步开始面向经济领域。侵犯私人隐私,破坏私人电脑的病毒与商业结合,是病毒编写由个人行为到商业行为的一次转变,病毒发展的历史由此翻开了新的一章。
  
  病毒查杀方案:
  
  由于网管专题的栏目作用主要是“授人与渔”,天缘把病毒查杀过程经历一并写下,大家共同探讨。
  
  第一回合:
  
  当初见此病毒的时候,感觉不过如此,普通木马而已。依照老规矩,先把注册表里相关键值删除,再把病毒文件一删,然后重新启动机器,等待万事ok.启机一看,注册表完全没改过来,该删除的文件也都在。
  
  结局:病毒胜,天缘败。
  
  第二回合:
  
  换了一台机器,下了个卸载帮助工具,以方便监视注册表/文件的改变。我下的是Ashampoo UnInstaller Suite这个软件,能监视注册表/文件/重要配置文件。Ok,再次安装3721插件,把对注册表的改变/文件的改变都记录下来。(值得注意,因为注册表run和runonce的键是下次启动的时候生效的,因此在重新启动后,还要对比一下文件/注册表的改变才能得到确切结果)。然后对比记录,把3721添加的键全部记下来,添加的文件也记录下来。之后我计划是用安全模式启动,删除文件和注册表,所以写了一个save.reg文件来删除注册表里的相关键值(写reg文件在网管笔记之小兵逞英雄那讲有介绍,等一下在文末我提供那个reg文件给大家参考),写了一个save.bat来删除相关文件,放到c盘根目录下。重新启动机器,进入安全模式下,我先用regedit /s save.reg 导入注册表,然后用save.bat删除相关文件。重新启动机器,却发现文件依然存在,注册表也没有修改成功。通常对付木马/病毒的方式全然无效,令我产生如临大敌之感。
  
  结局:病毒胜,天缘败。
[此贴子已经被作者于2008-5-5 9:04:07编辑过]


  
“艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部
美女呀,离线,留言给我吧!
admin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27515 威望:0 精华:7 注册:2003/12/30 16:34:32
  发帖心情 Post By:2008/5/5 8:59:26 [只看该作者]

第三回合:
  
  重新启动机器,这次我采用手工的方式删除文件。发现了问题——对system32/drivers目录下的CnsMinKP.sys,WINDOWSDownloaded Program Files 目录下的Cnshook.dll和CnsMin.dll都“无法删除”。这样说可能有点不妥当,准确地说法是——删除之后没有任何错误报告,但文件依然存在。于是上网用google找找线索——在绿盟科技找到了一则文章(名字及url见前文),于是明白了这一切都是CnsMinKP.sys这东西搞得鬼。那么,只要能开机不加载它不就行了??但试了一下2k和xp的安全方式下都是要加载system32/drivers下的驱动,而如果想要取消加载,则需要修改注册表,但由于在加载了CnsMinKP.sys后修改注册表相关值无效,导致无法遏制CnsMinKP.sys这个程序的加载。当然,有软驱的朋友可以利用软盘启动的方式来删除该文件,但如果跟天缘一样用的是软驱坏掉的机器怎么办呢?记得绿盟上的文章所说的是——“目前无法破解”。在这一步上,天缘也尝试了各种方法。
  
  我尝试着改这几个文件的文件名,结果没成功;
  
  我尝试着用重定向来取代该文件,如dir * > CnsMinKP.sys ,结果不成功;
  
  我尝试着用copy con <文件名> 的方式来覆盖这几个文件,结果发现三个文件中Cnshook.dll可以用这样的方法覆盖成功,但是在覆盖CnsMinKP.sys和CnsMin.dll的时候,居然提示“文件未找到”!?熟悉copy con用法的朋友都该了解,无论是文件是否存在,都应该是可以创建/提示覆盖的,但居然出来这么一个提示,看来CnsMinKP.sys着实把系统都骗过了,强!!跟它拼到这里的时候,回想到了在dos下用debug直接写磁盘的时代了,或许用它才能搞定吧?
  
  仔细一想,win2k/xp下似乎没有了debug程序了,而或许问题解决起来也不是那么复杂。再又尝试了几种方法后,终于得到了启示:既然文件不允许操作,那么##作目录如何?
  
  我先把windowssystem32drivers目录复制一份,取名为drivers1,并将其中的CnsMinKP.sys删除(注意,因为是drivers1中的,所以可以被成功地真正删除掉);
  
  重新启动机器,到安全模式下;
  
  用drivers1目录替代原来的drviers目录
  
  cd windowssystem
  
  ren drivers drivers2
  
  ren drivers1 drivers
  
  之后重新启动机器,然后进到windows后先把drivers2目录删除了,然后慢慢收拾残余文件和清理注册表吧。在这里天缘提供一个reg文件,方便各位删除注册表:
  
  Windows Registry Editor Version 5.00(用98的把这行改成regeidt4)
  
  [-HKEY_LOCAL_MACHINESOFTWARE3721]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesCLSID\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesCLSID\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesCnsHelper.CH]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesCnsHelper.CH.1]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesCnsMinHK.CnsHook]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesCnsMinHK.CnsHook.1]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesInterface\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesTypeLib\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREClassesTypeLib\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerAdvancedOptions!CNS]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionUninstallCnsMin]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerExtensions\]
  
  [-HKEY_CURRENT_USERSoftware3721]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerSearchOCustomizeSearch]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerSearchOSearchAssistant]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerSearchCustomizeSearch]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerSearchSearchAssistant]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionExplorerShellExecuteHooks\]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRunCnsMin]
  
  [-HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRunOnceEK_Entry]
  
  [-HKEY_USERSS-1-5-21-789336058-764733703-1343024091-1003SoftwareMicrosoftInternet ExplorerMainCNSAutoUpdate]
  
  [-HKEY_USERSS-1-5-21-789336058-764733703-1343024091-1003SoftwareMicrosoftInternet ExplorerMainCNSEnable]
  
  [-HKEY_USERSS-1-5-21-789336058-764733703-1343024091-1003SoftwareMicrosoftInternet ExplorerMainCNSHint]
  
  [-HKEY_USERSS-1-5-21-789336058-764733703-1343024091-1003SoftwareMicrosoftInternet ExplorerMainCNSList]
  
  [-HKEY_USERSS-1-5-21-789336058-764733703-1343024091-1003SoftwareMicrosoftInternet ExplorerMainCNSMenu]
  
  [-HKEY_USERSS-1-5-21-789336058-764733703-1343024091-1003SoftwareMicrosoftInternet ExplorerMainCNSReset]
  
  结局:病毒败,天缘胜。
  
  (虽然是成功地删除了它,但是感觉赢得好险,如果该病毒加一个禁止上级文件改名的功能那么就真的没折了,为了预防类似的情形,最后还是找到了彻底一点的办法,见下)
  
  第四回合:
  
  聪明的读者大概已经想到,既然没有办法在硬盘启动对于c盘是fat32格式的机器,想到这里已经找到了解决办法——用win98启机软盘启动机器,然后到c盘下删除相关文件,然后启动到安全模式下用save.reg把注册表搞定就行了。问题是——大多数win2k/xp都使用的是新的ntfs格式,win98启机软盘是不支持的!怎么办?有软驱的机器可以做支持NTFS分区操作的软盘,用ntfsdos这个软件就能做到。而跟天缘一样没有软驱的朋友,别忘记了win2k/xp开始加入的boot,不光是能够选择操作系统而已,而是跟linux下的lilo和grub一样,是一个操作系统引导管理器——换句话说,如果我们能在硬盘上做一个能读写NTFS的操作系统,再用boot进行引导,那么不是就可以在无软驱的情形下实现操作c盘的目的了么?在网络上找到vFloppy.exe 这个软件,它自带一个支持读写ntfs的镜象文件,并且使用简单,非常傻瓜化。然后删除3721的相关文件,重新启动后清理注册表和删除相关文件就行了。
  
  到此,我们终于把3721这个阴魂不散地幽灵彻底赶出了我们的硬盘!!
  
  由于不少网站基于各种原因,在显示页面的时候都会弹出3721的下载窗口,很容易误点。在ie中就能屏蔽掉该站以及其他恶意的任何下载。
  
  截止发稿为止,天缘所知不少同行网管已经在网关上做了对该地址的屏蔽,防止不知情的用户无辜受害。网络安全任重道远,还要*大家的努力才能把一些害群之马斩草除根。
  
  
工具箱  
【 · 发布:千篇一律  2005-04-22 20:20 】  
  怎么判断要下载的图片是否安全?
工具箱  
【 · 发布:fxj1588  2005-04-22 20:22 】  
  Rundll32.exe是什么?顾名思意,“执行32位的DLL文件”。它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL文件。当然,这些Rundll32.exe执行的DLL文件是什么,我们都可以从系统自动加载的地方找到。
  
  现在,我来介绍一下Rundll32.exe这个文件,意思上边已经说过,功能就是以命令行的方式调用动态链接程序库。系统中还有一个Rundll.exe文件,他的意思是“执行16位的DLL文件”,这里要注意一下。在来看看Rundll32.exe使用的函数原型:
  Void CALLBACK FunctionName (
  HWND hwnd,
  HINSTANCE hinst,
  LPTSTR lpCmdLine,
  Int nCmdShow
  );
  
  其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]
  DLLname为需要执行的DLL文件名;Functionname为前边需要执行的DLL文件的具体引出函数;[Arguments]为引出函数的具体参数。
  略谈Rundll32.exe的作用 (我是菜鸟)
  
  常用Windows9x的朋友一定对Rundll32.exe和Rundll.exe这两个档案不会陌生吧,不过,由於这两个程式的功能原先只限於在微软内部使用,因而真正知道如何使用它们的朋友想必不多。那么好,如果你还不清楚的话,那么就让我来告诉你吧。
  首先,请你做个小实验(请事先保存好你正在执行的程式的结果,否则...):点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然後键入rundll32.exe user.exe,restartwindows,再按下回车键,这时你将看到,机器被重启了!怎么样,是不是很有趣?
  当然,Rundll的功能绝不仅仅是重启你的机器。其实,Rundll者,顾名思义,执行Dll也,它的功能就是以命令列的方式呼叫Windows的动态链结库,Rundll32.exe与Rundll.exe的区别就在於前者是呼叫32位的链结库,而後者是运用於16位的链结库,它们的命令格式是:
  
  RUNDLL.EXE ,,
  这里要注意三点:1.Dll档案名中不能含有空格,比如该档案位於c:\ProgramFiles\目录,你要把这个路径改成c:\Progra~1\;2.Dll档案名与Dll入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!3.这是最重要的一点:Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual Basic中,提供了一条执行外部程式的指令Shell,格式为:
  Shell “命令列”
  如果能配合Rundll32.exe用好Shell指令,会使您的VB程式拥有用其他方法难以甚至无法实现的效果:仍以重启为例,传统的方法需要你在VB工程中先建立一个模组,然後写入WinAPI的声明,最後才能在程式中呼叫。而现在只需一句:
  
  Shell “rundll32.exe user.exe,restartwindows”就搞定了!是不是方便多了?
  实际上,Rundll32.exe在呼叫各种Windows控制面板和系统选项方面有著独特的优势。下面,我就将本人在因特网上收集的有关Rundll的指令列举如下(很有用的,能省去你很多呼叫Windows API的时间!!),供大家在程式设计中引用:



  
平面设计、网站建设、三维动画、视频制作 联系QQ:114103945  回到顶部
美女呀,离线,留言给我吧!
admin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27515 威望:0 精华:7 注册:2003/12/30 16:34:32
  发帖心情 Post By:2008/5/5 8:59:41 [只看该作者]

命令列: rundll32.exe shell32.dll,Control_RunDLL
  功能: 显示控制面板
  命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1
  功能: 显示“控制面板-辅助选项-键盘”选项视窗
  命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
  功能: 显示“控制面板-辅助选项-声音”选项视窗
  命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
  功能: 显示“控制面板-辅助选项-显示”选项视窗
  命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
  功能: 显示“控制面板-辅助选项-滑鼠”选项视窗
  命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
  功能: 显示“控制面板-辅助选项-传统”选项视窗
  命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
  功能: 执行“控制面板-添加新硬体”向导。
  命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
  功能: 执行“控制面板-添加新印表机”向导。
  命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
  功能: 显示 “控制面板-添加/删除程式-安装/卸载” 面板。
  命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2
  功能: 显示 “控制面板-添加/删除程式-安装Windows” 面板。
  命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
  功能: 显示 “控制面板-添加/删除程式-启动盘” 面板。
  命令列: rundll32.exe syncui.dll,Briefcase_Create
  功能: 在桌面上建立一个新的“我的公文包”。
  命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll
  功能: 显示复制软碟视窗
  命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
  功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。
  命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
  功能: 显示“日期与时间”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
  功能: 显示“时区”选项视窗。
  命令列: rundll32.exe rnaui.dll,RnaDial [某个拨号连接的名称]
  功能: 显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。
  命令列: rundll32.exe rnaui.dll,RnaWizard
  功能: 显示“新建拨号连接”向导的视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
  功能: 显示“显示属性-背景”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
  功能: 显示“显示属性-萤屏保护”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
  功能: 显示“显示属性-外观”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
  功能: 显示显示“显示属性-属性”选项视窗。
  命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
  功能: 显示Windows的“字体”档案夹。
  命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
  功能: 同样是显示Windows的“字体”档案夹。
  命令列: rundll32.exe shell32.dll,SHformatDrive
  功能: 显示格式化软碟对话框。
  命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0
  功能: 显示“控制面板-游戏控制器-一般”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
  功能: 显示“控制面板-游戏控制器-进阶”选项视窗。
  命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档)
  功能: 列印HTML文档。
  命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
  功能: 显示Microsoft Exchange一般选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
  功能: 显示“控制面板-滑鼠” 选项 。
  命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
  功能: 显示 “控制面板-键盘属性-速度”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1
  功能: 显示 “控制面板-键盘属性-语言”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2
  功能: 显示Windows“印表机”档案夹。
  命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
  功能: 显示Windows“字体”档案夹。
  命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
  功能: 显示“控制面板-输入法属性-输入法”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add
  功能: 执行“添加新调制解调器”向导。
  命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
  功能: 显示“控制面板-多媒体属性-音频”属性页。
  命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1
  功能: 显示“控制面板-多媒体属性-视频”属性页。
  命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2
  功能: 显示“控制面板-多媒体属性-MIDI”属性页。
  命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3
  功能: 显示“控制面板-多媒体属性-CD音乐”属性页。
  命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
  功能: 显示“控制面板-多媒体属性-设备”属性页。
  命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1
  功能: 显示“控制面板-声音”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl
  功能: 显示“控制面板-网路”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl
  功能: 显示ODBC32资料管理选项视窗。
  命令列: rundll32.exe shell32.dll,OpenAs_RunDLL {drive:\path\filename}
  
  功能: 显示指定档案(drive:\path\filename)的“打开方式”对话框。
  命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl
  功能: 显示“控制面板-密码”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl
  功能: 显示“控制面板-电源管理属性”选项视窗。
  命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder
  功能: 显示Windows“印表机”档案夹。(同rundll32.exe shell32.dll,Control_RunDLL main.cpl @2)
  命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
  功能: 显示“控制面板-区域设置属性-区域设置”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
  功能: 显示“控制面板-区域设置属性-数字”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
  功能: 显示“控制面板-区域设置属性-货币”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
  功能: 显示“控制面板-区域设置属性-时间”选项视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4
  功能: 显示“控制面板-区域设置属性-日期”选项视窗。
  命令列: rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名]
  功能: 将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0
  功能: 显示“控制面板-系统属性-传统”属性视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
  功能: 显示“控制面板-系统属性-设备管理器”属性视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2
  功能: 显示“控制面板-系统属性-硬体配置档案”属性视窗。
  命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
  功能: 显示“控制面板-系统属性-性能”属性视窗。
  命令列: rundll32.exe user.exe,restartwindows
  功能: 强行关闭所有程式并重启机器。
  命令列: rundll32.exe user.exe,exitwindows
  功能: 强行关闭所有程式并关机。
  命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
  功能: 显示“拨号属性”选项视窗
  命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl
  功能: 显示“桌面主旨”选项面板
  当然,不止是VisualBasic,象Delphi.VisualC++等其他程式设计语言也可以通过呼叫外部命令的方法来使用Rundll的这些功能,具体方法这里就不再详细叙述了。灵活的使用Rundll,一定会使你的程式设计轻轻松松,达到事半功倍的效果!


  
“艺镇”官方站:www.zyzsky.com QQ群:1221854  回到顶部