这里只说说类似logo这类的恶性病毒(以下简称病毒)是如何感染可执行文件的(扩展名是.exe的)。
病毒通过各种方式运行之后,首先会对操作系统进行判断,搞清楚什么操作系统,然后,会执行一些特定的隐藏工作,并添加到系统注册表中可以让自己再次运行的位置。这些初始化工作做完之后,如果病毒没有别的任务。就开始感染文件了。
首先,病毒会枚举当前正在运行的程序的路径,例如当你在使用千千静听听歌的时候,病毒就会枚举到千千静听.exe程序路径,如下图:
通常病毒可以枚举到当前正在运行的所有程序的可执行文件的路径,但除了一些作过特殊处理的程序,例如下图中的卡巴斯基的进程kav.exe,病毒就无法枚举到:
一旦病毒获得了可执行文件的路径,就会打开这个可执行文件(如果能打开的话,通称可执行文件都是采用镜像方式读入内存的,所以一般都能打开),然后把自己的代码写道合适的位置。
对于那些当前没有运行的程序,病毒就没有办法知道其可执行文件的路径了。这时候,病毒会采取枚举目录的办法来寻找可执行文件。例如,病毒要感染d盘中的游戏的可执行文件,病毒首先询问操作系统,“告诉我,d盘更目录都有什么文件和文件夹?把这些信息写道纸条上给我!”操作系统很听话,就会如实把这些信息“写道纸条上”告诉病毒。病毒拿到d盘更目之后,就会按照上面列出的名字,挨个让操作系统带路,比如有一个叫做传奇的目录,病毒就会让操作系统带路,“带我到传奇目录里面去!”,操作系统就会带病毒进入传奇的目录中去,进去之后,病毒会接着问“可执行文件都是那些?”,操作系统会返回“传奇”目录中的所有可执行文件的名字给病毒,病毒知道了可执行文件的路径后,就会感染这些文件。 病毒会让操作系统带他进入d盘所有的目录中去一编,试图感染所有的可执行文件,来完成传播自身的目的。
由此我们可以知道,要避免可执行文件被感染,那么必须做到:
在内存中不要让病毒获得自身可执行文件的路径,例如上图中的kav.exe进程。方法是,处理系统枚举进程的函数,就是取得系统的最高层管理权限,这就是杀毒软件有时候会造成系统崩溃的原因之一。
在病毒枚举磁盘的过程中,不让其枚举到。这在windows nt系统中都是可以很容易做到的,那就是利用ntfs文件系统的的权限特性。关于ntfs权限的应用,或者大家有什么不同的理解的,欢迎到天下·网吧联盟论坛技术版讨论:bbs.txwb.com。
欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com |
关注天下网吧微信,了解网吧网咖经营管理,安装维护:
本文来源:天下·网吧联盟 作者:佚名