B、自动播放式的触发启动




自动播放本是用于光盘的,当插入一个电影光盘到光驱时,系统会自动播放里面的内容,这就是自动播放的本意,播放什么是由光盘中的AutoRun.inf文件指定的。此文件的内容,通常如下:




———————————




[autorun]




open=AutoRun.exe




icon=AutoRun.ico




       ———————————




Open那一行,指出了自动播放时系统自动运行的程序,icon指出了所显示的图标。后来有人用于了硬盘与U盘,在U盘或硬盘的分区,创建Autorun.inf文件,并在Open中指定木马程序,这样,当你打开硬盘分区或U盘时,就会触发木马程序的运行。




这类启动,大部分安全工具都进行了监管,在狙剑的自启动项中会列出每个磁盘或分区的自动播放式的自启动程序。




C、感染式的触发启动




这就涉及到病毒了,电脑病毒通过感染正常的程序来实现自己的传播与启动。




计算机病毒是什么呢?其实也是一段程序,只是其完成的是特殊的工作。上面我们说过了,程序就是一份计划书,里面存的是指令序列,标明了程序所完成的工作流程。那么病毒程序的工作流程是什么样子的呢?通常情况下,病毒程序的工作流是这样的“查找其它符合感染条件的程序à判断是否已经感染à如果是则查找下一个,如果不是则修改其工作流程进行感染à执行其它任务。”




病毒程序又是如何感染其它程序的呢?病毒的感染其实就是对正常程序工作流程的修改,仍然用我们在进程篇中的那个例子来说明:正常情况下,一个程序存储的是一个工作的流程,如:动手取原料--à加工---à组装---à验收等等。而一旦被病毒感染后,这个流程就会被病毒修改,修改成这个样子:找老马分派工作-à老马执行了病毒体 -à动手取原料 -à加工---à组装---à验收等等,前两步工作就是病毒感染时硬给加上去的,以后每次执行被感染的程序时,都将从“找老马分派工作”开始,然后由老马完成自己的工作后,再转而执行此程序本应该进行的工作。




也就是说,病毒将自己的病毒体附加到了正常的程序上面,并修改了程序的入口地址为病毒体的执行地址,最后再由病毒体执行完毕后跳回原程序的入口地址来执行原程序的功能,这一切对用户来说都是不可见的。




用户一旦运行被感染的程序,实际上也就完成了病毒木马的触发启动。




病毒的清除并不复杂,不外乎就是一个分析,从被感染程序中找到病毒体,清掉,再恢复原程序的入口地址,就OK了。但难就难在病毒与病毒是各不相同的,而新病毒又层出不穷,这就使得这种分析与清除工作需要大量的人力与精力。所以,也只有有实力的大公司才有可能很好的维护一个病毒库,并不断的分析新病毒来更新病毒库。




所以,朋友们遇到感染型的病毒后,最先要做的就是提交样本给杀毒软件公司,而不是找安全工具的开发者求助,一个安全工具的开发者,我相信是有能力清除病毒的,但我同样相信,他是没有精力去做这些事情的,这种工作不是一个人可以做得来的。




D、修改式的触发启动




修改式的触发启动,主要是指修改原本为正常启动的环节,实现自身的启动,这个与感染式的比较像,但又不同。他们的修改并非大量的,而是有针对性的。




有修改引导扇区的、有修改系统文件的。修改方法与病毒感染大致相同,就是在正常的指令序列中插入自己调用病毒或木马程序的指令,以实现在自己的启动。




这种方式隐蔽性很强,但却很难逃过以数字签名验证为主要手段的启动项检查,因为一旦系统文件被修改,即不再能通过数字签名验证,前面提到的修改Userinit.exe的木马就是这样的一个例子。




这种方法启动的木马,还使得清理起来比较困难,因为他们修改了系统文件,需要用原有的文件进行还原性的替换修复,如果手头有系统安装盘还好一点,没有就比较麻烦了。




狙剑提供了系统文件修复的功能,其实这一功能也是调用的系统本身自带的系统文件修复,只是进行了少许的加工罢了。比如:有的光盘系统安装目录与原版系统盘并不相同,这样,用系统自带的系统文件修复功能时,即使你插入了系统安装盘,也会提示你找不到系统盘,而改进后的就可以手选择安装目录了。再比如,装机器时,有些装机员习惯在机器上拷贝一份安装目录,这样就不用频繁的插入系统光盘了。而这个硬盘上的目录,通常是不能用于系统文件修复的。改进后的多了一个全盘扫描系统安装目录的功能,你可以指定或让狙剑自动扫描安装目录后,再进行修复。




修改引导区的,现在已经很少见到了,很多杀软都提供了恢复引导区的功能,相反,这种很少见的木马启动方式,安全工具反而很少有提供恢复的。




E、事件触发启动




呵,分类是我自己分的,名字也是自己取的,是否贴切很难说,大家就凑合着看吧。事件是指当你进行某项工作时,比如:下载




与文件关联不同的是这种触发并不区分你下载的是哪一类的文件,也无须打开下载的文件,只要有下载的事件发生,就会触发。




用过迅雷的朋友可能有体会,一旦下载东西,迅雷就会自动打开,而无论先前迅雷是否已经运行。试想,如果木马也有同样的本事,我们一下载东西就打开木马,那岂不是很可怕?




目前我只发现了迅雷有这种功能,是否还有其它事件触发启动的程序存在,还不得而知。




总之,启动的方式多种多样,手法也是各有不同,想一网打尽几乎是不可能的,只能是尽力的发现、加入、再有发现、再加入。而以上说的也只是常见的,还有一些并不常见的,我也就不多说了,因为没发现有利用的,这里也就不提了,以免被坏人利用。




下面我们开始聊聊自启动项的隐藏与保护,虽然分成了隐藏与保护,但两者使用的也大多是相同的技术,也就合在一起聊了,能保护也就能隐藏,反之亦然。

--------------------------------------------------------------------------------------
本文转自狙剑作者的blog----MuseHero.blog.tianya.cn

Identify the aspects of your application that vary and separate them from what stays the same.