现在的位置: 首页 > 综合 > 正文

病毒木马启动方式

2017年05月19日 ⁄ 综合 ⁄ 共 13212字 ⁄ 字号 评论关闭

       由于木马是基于远程控制的程序,因此,中木马的机器会开有特定的端口。一般一台个人用的系统在开机后最多只有137、138、139三个端口。若上网,会有其他端口,这是本机与网上主机通讯时打开的,如IE一般会打开连续的端口:1025,1026,1027等。

    如果发现自己的硬盘总是莫明其妙地读盘,软驱灯经常自己亮起,网络连接及鼠标、屏幕出现异常现象,很可能就是因为有木马潜伏在你的机器里面,此时,就应该想办法清除它们了。

    当发现可疑文件时,可以试试能不能删除它,因为木马多是以后台方式运行,通过按“Ctrl+Alt+Del”是找不到的,而后台运行的应是系统进程。如果在前台进程里找不到,而又删不了(提示正在被使用),那就应该注意了。 

    在DOS命令行下用”netstat -na”命令可以看到本机所有打开的端口。如果发现除了以上所说的端口外,还有其他端口被占用(特别是木马常用端口被占用),那可要好好查查了,很有可能中了木马。 
在电脑越来越普及的今天, 使用杀毒软件明显已经不够,如果能知道病毒的运行方式和藏身之处,必定事半功倍,经过N久的收集,木马通常自启动是通过以下几种方式:
 
一. 系统启动文件夹 
可能这种方式比较多,假设你当前用户名为 yexj00,系统盘为C盘, 那么对你有影响的有两个系统启动文件夹,就是C:\Documents and Settings\yexj00\「开始」菜单\程序\启动和C:\Documents and Settings\All Users\「开始」菜单\程序\启动。 
[注:"All Users"即对所有用户都有作用] 在开始菜单的“启动”文件夹是可更改的,如果用户更改了启动文件夹,则以上注册表的键值均会改变为相应的名称。 
   
  值得注意的是:开始菜单的“启动”文件夹中的内容虽然在默认的状态下可以被用户看得一清二楚。但通过改动还是可以达到相当隐蔽地启动的目的的: 
   
  首先,“启动”文件夹中的快捷方式或其他文件的属性可以改变为“隐藏”。这样可以达到系统不启动被隐藏的文件,等到需要启动的时候又可以通过更改回文件属性而恢复启动的作用。 
 其次,其实“启动”文件夹只是一个普通的文件夹,但是由于系统监视了这个文件夹,所以变得有些特殊,但文件夹有的功能该文件夹也是有的。譬如“启动”文件夹的名称是可以更改的,并且“启动”文件夹也可以设置属性。如果把属性设置为“隐藏”,则在系统中的【开始】--【程序】菜单中是看不到“启动”文件夹的(即使在“文件夹选项”中已经设定了“显示所有文件”)。而系统还会启动这个被隐藏的文件夹中的非隐藏文件。敏感的人们也许已经发现问题。举一个例子:如果我想启动A木马的server端服务器,我可以把原来的“启动”菜单的名称更改为“StartUp”(这里是随便改的,注册表相应的键值也会自动更改。)之后再创建一个名为“启动”的文件夹,把“StartUp”菜单中的文件全部复制(这里用复制,可以骗过用户的检查)到“启动”菜单中,然后把A木马的server程序放入“StartUp”文件夹中,最后把“StartUp”文件夹隐藏。大功告成! 
   
  从外表看来,用户的【开始】--【启动】目录还在,而且要启动的文件也在。但系统此时启动的文件不是名为“启动”的文件夹中的文件,而是名为“StartUp”的文件夹中的文件。如果木马做的好的话,完全可以在每次启动的时候把“StartUp”中的文件复制到“启动”目录中来达到实时更新启动目录的目的。由于“StartUp”文件夹被隐藏,从【开始】?【程序】中是无法看到真正的启动菜单“StartUp”的,所以达到了隐蔽启动的目的!这个启动方式虽然比较隐蔽,但通过msconfig依旧可以在“启动”页中看出来。

二. 注册表

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx(winXP)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer/Shell Folders\Startup
最常用的: 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

不大常用的:

HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load 
HKEY_USERS/Default/Software/Microsoft/Windows/CurrentVersion下所有以“Run”开头的键值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit //这个不大常用,一般写成:userinit.exe,xx.exe

注意: 
  (1).如果需要运行.dll文件,则需要特殊的命令行。 
  如: 
  Rundll32.exe C:WINDOWSFILE.DLL,Rundll32 
  (2).解除这里相应的自启动项只需删除该键值即可,但注意不要删除如SystemTray、ScanRegistry等这样的系统键值。 
  (3).如果只想不启动而保留键值,只需在该键值加入rem即可。如: 
  “rem C:Windowsa.exe” 
  (4).在注册表中的自启动项中没有这项: 
  [HKEY_CURREN SoftwareMicrosoftWindowsCurrentVersionRunServices] 
  (5).Run和RunServices的区别在于:Run中的程序是在每次系统启动时被启动,RunServices则是会在每次登录系统时被启动。 
  关于: 
  [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx] 
   
  有特殊的语法: 
  例如,运行notepad.exe 
  HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx 
  \"Title\"=\"My Setup Title\" 
  \"Flag\"=dword:00000002 
   
  HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx001 
  \"RunMyApp\"=\"||notepad.exe\" 
  语法为: 
  HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx 
  Flags = 0x0000000 
  Title = \"Status Dialog Box Title\" 
   
  HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceExDepend 
  0001 = \"xxx1\" 
  000X = \"xxxx\" 
   
  HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx001 
  Entry1 = \"MyApp1.exe\" 
  EntryX = \"MyApp2.exe\" 
  HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx00x 
  ... 
  注意: 
  (1).“xxx1,xxxx”是一个动态链接库(DLL)或.OCX文件名(如My.ocx或My.dll)。
Windows自启动方式大全(下)
2).“0001,000x”是部分名字。可以是数字和文字。 
  (3).“entry1,entryX”是指向一个要运行的程序文件的注册表串值。 
  键值的说明: 
  Flags是一个定位在RunOnceEx键用来激活/禁止的DWORD值,具体如下: 
  值  功能  功能定义 
  0x00000000  默认  所有功能被禁止 
  0x00000004  检查壳状况  打开壳的读写校验准备接受OLE命令 
  0x00000008  无报错对话  错误对话框不显示 
  0x00000010  创建错误报告文件  创建 C:WindowsRunOnceEx.err 文件如果有错误出现 
  0x00000020  创建执行报告文件  创建一个有命令状态的C:WindowsRunOnceEx.log文件 
  0x00000040  无例外限制  当注册DLL时不限制例外 
  0x00000080  无状态对话  当RunOnceEx运行时状态对话框不显示 
   
  由于涉及篇幅较多,具体做法请浏览微软网页: 
  http://support.microsoft.com/support/kb/articles/Q232/5/09.ASP 
   
  2.特殊启动1: 
  在注册表中除了上述的普通的启动方式以外,还可以利用一些特殊的方式达到启动的目的: 
  [HKEY_CLASSES_ROOTexefileshellopencommand] @=\"%1\" %* 
  [HKEY_CLASSES_ROOTcomfileshellopencommand] @=\"%1\" %* 
  [HKEY_CLASSES_ROOTbatfileshellopencommand] @=\"%1\" %* 
  [HKEY_CLASSES_ROOThtafileshellopencommand] @=\"%1\" %* 
  [HKEY_CLASSES_ROOTpiffileshellopencommand] @=\"%1\" %* 
  [HKEY_LOCAL_MACHINESoftwareCLASSESbatfileshellopencommand] @=\"%1\" %* 
  [HKEY_LOCAL_MACHINESoftwareCLASSEScomfileshellopencommand] @=\"%1\" %* 
  [HKEY_LOCAL_MACHINESoftwareCLASSESexefileshellopencommand] @=\"%1\" %* 
  [HKEY_LOCAL_MACHINESoftwareCLASSEShtafileshellopencommand] @= \"%1\" %* 
  [HKEY_LOCAL_MACHINESoftwareCLASSESpiffileshellopencommand] @=\"%1\" %* 
   
  其实从注册表的路径上也许就隐约可以看出,这些都是一些经常被执行的可执行文件的键值。往往有些木马是可以更改这些键值从而达到加载的目的: 
  如果我把“”%1”%*”改为“file.exe”%1”%*”则文件file.exe就会在每次执行某一个类型的文件(要看改的是哪一个文件类型)的时候被执行! 当然,可以被更改的不一定只是可执行文件,譬如冰河就利用了TXT文件的键值: 
  [HKEY_CLASSES_ROOTtxtfileshellopencommand]实现木马的一种启动方式。 
   
  3.特殊启动2: 
 在注册表中: 
  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD 
  的位置上有这样的地址。该地址是系统启动VxD驱动文件放置的地址,就像PrettyPark这个蠕虫一样,可以建立一个主键之后把VxD文件添加到注册表中在这里。 
  注意:不可以直接把一个EXE文件改名为VxD文件,需要另外进行编程,生成的VxD文件。

 

三. 在Win.ini中启动

    在Win.ini的[windows]字段中有启动命令“load=”和“run=”,在一般情况下“=”后面是空白的,如果有程序,比方说是: run=c:/windows/file.exe或load=c:/windows/file.exe,要小心了,这个file.exe很可能就是木马。

四. 在System.ini中启动

    System.ini位于Windows的安装目录下,其[boot]字段的shell=Explorer.exe是木马喜欢的隐蔽加载之所,木马通常的做法是将该句变为这样:shell=Explorer. exe window.exe,注意这里的window.exe就是木马程序。另外,在System.ini中的[386Enh]字段,要注意检查在此段内的“driver=路径/程序名”,这里也有可能被木马所利用。再有,在System.ini中的[mic]、[drivers]、[drivers32]这三个字段,这些段也是起到加载驱动程序的作用,但也是增添木马程序的好场所。

五. 在Autoexec.bat和Config.sys中加载运行

    这种加载方式一般都需要控制端用户与服务端建立连接后,将已添加木马启动命令的同名文件上传到服务端覆盖这两个文件才行,而且采用这种方式不是很隐蔽,所以这种方法并不多见,但也不能因此而掉以轻心。

六. 在Winstart.bat中启动

    Winstart.bat是一个特殊性丝毫不亚于Autoexec.bat的批处理文件,也是一个能自动被Windows加载运行的文件。它多数情况下为应用程序及Windows自动生成,在执行了Win.com并加载了多数驱动程序之后开始执行。由于Autoexec.bat的功能可以由Winstart.bat代替完成,因此木马完全可以像在Autoexec.bat中那样被加载运行,危险由此而来。

七. 在“开始→运行”中执行“Gpedit.msc”。 打开“组策略”,可看到“本地计算机策略”中有两个选项:“计算机配置”与“用户配置”,展开“用户配置→管理模板→系统→登录”,双击“在用户登录时运行这些程序”子项进行属性设置,选定“设置”项中的“已启用”项并单击“显示”按钮弹出“显示内容”窗口,再单击“添加”按钮,在“添加项目”窗口内的文本框中输入要自启动的程序的路径,单击“确定”按钮就完成了。


八. 修改文件关联

    修改文件关联是木马常用手段(主要是国产木马,老外的木马大都没有这个功能),比方说,正常情况下txt文件的打开方式为Notepad.EXE文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开,如著名的冰河就是这样干的。一旦你双击一个txt文件,原本应用Notepad打开该文件的,现在却变成启动木马程序了。请大家注意,不仅仅是txt文件,其他诸如HTM、EXE、ZIP、COM等都是木马的目标。对付这类木马,只能检查HKEY_CLASSES_ROOT/文件类型/shell/open/command主键,查看其键值是否正常。


九. 捆绑文件

    实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后,控制端用户用工具软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样,即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。绑定到某一应用程序中,如绑定到系统文件,那么,每一次Windows启动均会启动木马。


十. 伪装在普通文件中这个方法出现的比较晚,不过现在很流行,对于不熟练的windows操作者,很容易上当。具体方法是把可执行文件伪装成图片或文本----在程序中把图标改成Windows的默认图片图标,再把文件名改为*.jpg.exe,由于Win98默认设置是"不显示已知的文件后缀名",文件将会显示为*.jpg,不注意的人一点这个图标就中木马了(如果你在程序中嵌一张图片就更完美了)。 
   
   
十一.其他启动方式: 
   
  (一).C:Explorer.exe启动方式: 
  这是一种特殊的启动方式,很少有人知道。 
  在Win9X下,由于SYSTEM.INI只指定了Windows的外壳文件EXPLORER.EXE的名称,而并没有指定绝对路径,所以Win9X会搜索EXPLORER.EXE文件。 
  搜索顺序如下: 
  (1).  搜索当前目录。 
  (2).  如果没有搜索到EXPLORER.EXE则系统会获取 
  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironmentPath]的信息获得相对路径。 
  (3).  如果还是没有文件系统则会获取[HKEY_CURRENEnvironmentPath]的信息获得相对路径。 
   
  其中: 
  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironmentPath]和[HKEY_CURRENEnvironmentPath]所保存的相对路径的键值为:“%SystemRoot%System32;%SystemRoot%”和空。 
  所以,由于当系统启动时,“当前目录”肯定是%SystemDrive%(系统驱动器),这样系统搜索EXPLORER.EXE的顺序应该是: 
  (1).  %SystemDrive%(例如C:) 
  (2).  %SystemRoot%System32(例如C:WINNTSYSTEM32) 
  (3).  %SystemRoot%(例如C:WINNT) 
  此时,如果把一个名为EXPLORER.EXE的文件放到系统根目录下,这样在每次启动的时候系统就会自动先启动根目录下的EXPLORER.EXE而不启动Windows目录下的EXPLORER.EXE了。 
  在WinNT系列下,WindowsNT/Windows2000更加注意了EXPLORER.EXE的文件名放置的位置,把系统启动时要使用的外壳文件(EXPLORER.EXE)的名称放到了: 
  [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogonShell] 
  这个位置。 
  作为默认这个位置是不存在的,默认为是Explorer.exe。 
  具体请参考:http://www.microsoft.com/technet/security/bulletin/fq00-052.asp 
  注意: 
  一定要确定根目录下的EXPLORER.EXE要能启动Windows目录下的EXPLORER.EXE,否则会导致Windows无法启动! 
  现在流行的病毒CodeRed就会在C:和D:目录下放置两个约8KB的EXPLORER.EXE的文件! 
  在Windows 2000 SP2中微软已经更改了这一方式。 
  (二).屏幕保护启动方式: 
  Windows的屏幕保护程序是一个.scr文件。这是一个PE格式的可执行文件。如果把屏幕保护程序.scr更名为.exe的文件,则该程序仍然可以正常启动。类似的.exe文件更名为.scr文件也是一样可以被运行! 
  .scr文件默认存在于C:Windows目录中,他的名字就是在“显示”属性中的“屏幕保护程序”中的名称。在C:Windows目录下的所有*.scr文件都会被Windows的“屏幕保护程序”显示,而文件路径本身保存在System.ini中的SCRNSAVE.EXE=的这条中。有意思的是在SCRNSAVE.EXE=这条中,其规定的路径也包含了目录名称。即如果我想安装一个.scr文件时,譬如安装路径为D:SCR1.scr,而D:SCR这个目录中还有2.scr,则在这个目录中的所有.scr(1.scr,2.scr)文件都会被显示在“屏幕保护程序”设置中。如果屏幕保护程序设为“(无)”,则SCRNSAVE.EXE=这条不存在。但如果SCRNSAVE.EXE=这条所指的文件或目录是错误的,则在“屏幕保护程序设置”中仍然会显示“(无)”。 
   
  屏幕保护程序的启动时间保存在注册表中的这个位置上: 
  HKEY_USERS.DEFAULTControl PaneldesktopScreenSaveTimeOut 
  时间单位为秒,不过虽然是秒,可启动时间却为分,即从60秒开始记录,如果记录时间小于60秒,则自动定为1分钟。 
  屏幕保护是否设置密码的键值为: 
  HKEY_USERS.DEFAULTControl PaneldesktopScreenSaveUsePassword 
  有密码则值为1没有密码则值为0。 
  由此可见,如果有人把自己所作的.exe程序更名为.scr的程序,并使程序能够在SYSTEM.INI中添加“SCANSAVE.EXE=/%Path%”f/ile.scr”(/%Path%/file.scr为所需要设置的文件的路径和文件名,如C:Program filestrojan.scr),修改注册表中的HKEY_USERS.DEFAULTControl PaneldesktopScreenSaveTimeOut,定时间为60,则系统只要闲置一分钟该文件就会被启动! 
  另外一个简单的破坏方式就是可以随机产生屏幕保护密码并写入相应文件的相应位置,定时间为1分钟,则系统只要闲置一分钟则会被被锁!(由于涉及问题并非自启动问题,所以不加以讨论。) 
  注意:由于SCANSAVE.EXE=这里还会定义.scr文件的路径,所以最好不要把要启动的文件放置在.scr文件较多的一些目录,否则容易引起怀疑。(Windows目录除外) (三).依附启动: 
  这类启动方式已经有几分类似病毒了。这种方法是利用病毒的传染机制把要启动的EXE文件附着在另外的一个和多个EXE文件上,从而达到启动这个EXE文件就可以启动要启动的文件的目的。记得1999年YAI这个木马流行的时候,它就使用了依附一个EXE文件而达到启动的目的,但是由于BUGS和方式问题该木马的破坏作用却体现在了它“病毒”的一面。 
  使用这种启动方法一定要注意不能破坏EXE文件(否则会很容易被发现),而且最好把木马定位在固定的一个或者几个EXE文件上。如:IEXPLORE.EXE(IE的EXE文件),RNAPP.EXE(拨号网络的EXE文件)等等。
  注意:这种方法的使用比较危险,技术上也需要相当功底,而且和病毒的距离很近,慎用。 
   
  (四).计划任务启动方式: 
  Windows的计划任务是Windows的一个预置实现某些操作而使用的一个功能。但是如果利用这个功能也是能够实现自启动的目的的!由于很多电脑都会自动加载“计划任务”所以隐蔽性相对不错。 
   
  在Windows默认的情况下,计划任务是一个个保存在C:WindowsTasks目录下的.job文件。.job文件里包括了启动方式、文件路径等一系列的信息。编制出或者使软件自己可以写出.job文件,则是关键。之后在相关地方写入标记启动即可。 
  由于时间关系,这个方法没有来得及试验,读者可以自己试验一下。 
  (五).AutoRun.inf启动方式: 
  Autorun.inf这个标识也许大家都见过。是的,这个最常出现在光盘中,用于光盘自启动。每次把光盘放入光驱中的时候,系统会通过这个文件来决定是否自动启动光盘。但是有没有想过,这个文件也可以用来自启动一些文件! 
  Autorun.inf的内容通常是: 
  [AUTORUN] 
  OPEN=file.exe 
  ICON=icon.ico 
   
  OPEN中是插入光盘或者双击光盘盘符就会运行的可执行文件的名称。 
  ICON中是该光驱驱动器的图标文件。该文件可以是其他文件。如: 
  [AUTORUN] 
  OPEN=file.exe 
  ICON=icon.exe,2 
  其中icon.exe是一个有图标文件的可执行文件,“,2”则是该文件中的第3个图标。(“,0”是第一个图标,无数字则默认为第一个图标)。 
  最关键的是该Autorun.inf文件是可以被用在硬盘的驱动器上的。也就是说,如果把光盘上的所有文件及目录原封不动的复制到某一硬盘的根目录下,则双击盘符会出现自动运行文件! 
  如果是木马的话,打一个比方:一个木马如果执行后被命名为aaa.exe放置在C:Windows目录下。那么该木马可以生成一个autorun.inf 
  文件于C:下,内容如下: [AUTORUN] 
  OPEN=Windows\aaa.exe 
  ICON=aaa.exe 
  这样的话,盘符图标为aaa.exe的第一个图标文件。则在每次双击C盘的时候都会执行aaa.exe文件了。但要注意的是,aaa.exe文件 
  最好能够打开C盘目录。(比较容易伪装) 
   
  注意: 
  (1).autorun.inf的属性被改为隐藏后仍可以正常使用。 
  (2).autorun.inf中的路径对相对路径和绝对路径都是可以实现的。也就是说,如果autorun.inf被放在1盘符下,也可以2盘符上的文件!如: 
如果把autorun.inf文件放在C盘根目录下,内容为 
  [AUTORUN] 
  OPEN=D:CCCbbb.exe 
  ICON=bbb.exe 
  则这时如果双击C盘则可以执行D盘CCC目录上的bbb.exe文件! 
  (3).如果没有OPEN项目,则系统不执行任何文件,而去执行下一个命令。 
  (4).如果没有ICON项目,则该盘符的图标为原Windows盘符图标,但如果有ICON项却设置错误,或者所设置的文件没有图标,则系统会显示为默认的空白图标。 
  (5).自动启动相关: 
  a.代启动: 
  这种启动方式其实只是一个方法的问题。即可以用启动一个正常文件来启动另一个文件,SubSeven就用过启动Windos.exe从而启动SubSeven的Sever文件的方法。 
  b.Start启动: 
  在“运行“中或“MS-DOS”方式中输入start回车,则会显示 
  Runs a Windows program or an MS-DOS program. 
   
  START [options] program [arg...] 
  START [options] document.ext 
   
  /m[inimized] Run the new program minimized (in the background). 
  /max[imized] Run the new program maximized (in the foreground). 
  /r[estored] Run the new program restored (in the foreground). [default] 
  /w[ait]   Does not return until the other program exits. 
  如果要启动的程序配合这个命令,则可以更加隐蔽,如: 
  start/m file.exe 
  但似乎有些有启动画面的软件(如金山词霸)对这条命令并没有反映。 
   
  c.控制面板启动: 
  这是利用控制面板程序可以被类似DLL执行,从而达到启动目的。 
  在控制面板中,.cpl文件是控制面板的原文件。默认的这些文件都会被放置在/%WINDOWS%/SYSTEM/目录下的,如desk.cpl是桌面属性、inetcpl.cpl是Internet选项之类。但这些.cpl文件全都是PE格式文件,也就是说如果用户把一个可执行的类似DLL的.cpl文件放入%Windows%System中,则在控制面板中可看到其图标,并可执行! 
   
  由于.cpl文件的特殊性,需要使用rundll32.exe来启动该文件。rundll32.exe是Windows用来调用动态连接库函数时所使用的文件,在运行中输入: rundll32 shell32.dll,Control_RunDLL /%path%/desk.cpl,,X 
  其中shell32.dll为被调用的DLL文件,意思为调用shell32.dll中的Control_RunDLL来打开desk.cpl文件;/%path%/为.cpl文件的路径,默认为C:WindowsSystem;最后的X为desk.cpl文件的页数:从0开始,0为第一页(如“显示属性”的“背景”),1为第二页(如“桌面属性”的“屏幕保护程序”),依此类推。 
  但如果照上面的方法做,则该文件会在控制面板中被显示。有两种方法可以不让其显示: 
  (1).  不要把自己的.cpl文件放在C:WINDOWS\SYSTEM中。因为默认的情况下Windows会加载的所有.cpl文件。如果想让其显示则打开C:WINDOWS下的Control.ini文件,在[MMCPL]中写入类似: 
  file.cpl=D:pathfile.cpl 
  的命令,从而达到显示的目的。 
  (2).  当你看到Control.ini文件的时候一定可以看到在[MMCPL]上面的[don‘t load]。是的,如果把你的文件以file.cpl=no的格式写入到这里面,那么文件就不被加载了。反之恢复。 
   
  d.其他: 
  注册表中: 
  HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced 
  的“HideFileExt”这个键值是确定Windows是不是显示扩展名的值,如果其值为1就隐藏扩展名,为0则不隐藏。 
  EXE文件中: 
  如SirCam蠕虫一样,*.EXE文件的扩展名可以改名称为.BAT、.COM、.PIF、.SCR等,并且运行效果一样,反过来不一定。但.EXE文件并不能更名为.LNK文件,这也许也是SirCam的一个BUG。 
 
 写在最后: 
病毒,木马自启动方式日新月异,除了以上的方法外,再介绍几种: 添加到计划任务,将自身注册为服务,更改exe打开方式以及在某驱动器或文件夹下含有autorun.inf和病毒两个文件的自启动方式.

抱歉!评论已关闭.