《病毒原理》看完此文以后,你可以初步掌握病毒的原理,将消除对病毒的神秘感,将不会再
恐惧病毒。如果,你很熟悉汇编,则可以轻而易举的编写病毒,不过一切后果自负! >再次声明:编写病毒并传播对社会造成危害是违法的,如果编写病毒只在自己的电脑 >上实验,并严格控制使病毒不传播出去,则是个人的自由!不要忘记我们研究病毒的 >最终目的是为了消灭病毒! ***** 一、引导型病毒****** 病毒能感染的只有可执行代码,在电脑中可执行代码只有引导程序和可执行文件, 当然,还有一类特殊的病毒,如WORD宏病毒,当然宏也是可执行代码。病毒感染BIOS 也是有可能的,不过并无太大意义,因为,现在的FLASHROM的BIOS都是可以写保护的, 再说,万一出事,用无毒的再写一遍即可。所以,一般将病毒分为引导型,文件型,或 是混合型。 想要了解引导型病毒的原理,首先要了解引导区的结构。软盘只有一个引导区,称 为DOS BOOT SECTER ,只要软盘已格式化,就已存在。其作用为查找盘上有无IO.SYS DOS.SYS,若有则引导,若无则显示‘NO SYSTEM DISK...’等信息。硬盘有两个引导区, 在0面0道1扇区的称为主引导区,内有主引导程序和分区表,主引导程序查找激活分区, 该分区的第一个扇区即为DOS BOOT SECTER。绝大多数病毒感染硬盘主引导扇区和软盘 DOS引导扇区。 下面给出基本引导病毒的原理图: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 带毒硬盘引导 ├┤ \/ BIOS将硬盘主引导区 读到内存0:7C00处 ;这是千古不变的,不知谁定的. 控制权转到主引导程序 ├┤(病毒) \/ 将0:413单元的值减少1K ;BIOS上机自检,将常规内存大小存入0:413; ├┤ (或nK) -1K 后,系统以后将不在访问最高段的1K内存 \/ 计算可用内存高段地址 将病毒移到高段继续执行 ├┤ \/ 修改INT13地址,指向病毒传染段 将原INT13地址保存在某一单元 ├┤ \/ 病毒任务完成,将原引导区调 入0:7C00执行 ├┤ \/ 机器正常引导 带毒软盘引导 病毒13号中断入口 ├┤ ├┤ \/ \/ 判断硬盘是否有毒, 是在读写软盘吗?-----否 若无毒则传染 ├┤是 ├┤ ├┤ \/ ├┤ \/ 此软盘有毒吗?---是 ├┤ 以下同上 ├┤否 ├┤ ├┤ \/ ├┤ ├┤ (传染时将病毒写入 对其传染 ├┤ ├┤ 主引导扇区,将原 ├┤ ├┤ ├┤ 引导程序存入某一 \/ \/ \/ 扇区) 执行原INT 13<----- 以上是引导型病毒的基本框图,不论是最古老,还是最新的,万变不离 其中.只不过在各细节个人的技巧不同罢了. 驻留内存:一般采取修改0:413地址的方法,因为引导时,DOS还未加载 这是唯一的方法,但有很大的缺点,启动后用MEM查看发现常规内存的总量 少于640K,不够隐蔽,当然有办法解决,可以修改INT 8,检测INT 21是否 建立,若建立则可采用DOS功能驻留内存.详细见文件型病毒. 隐形技术:当病毒驻留时,读写引导区均对原引导区操作,就好象 没有病毒一样. 加密技术:一般加密分区表,使无毒盘启动,无法读取硬盘. 具体细节及其他技术以后再说. 引导型病毒的优点:隐蔽性强,兼容性强,只要编的好,是不容易发现 的,通用于DOS WINDOWS WIN95 操作系统. 缺点:很多,传染速毒慢,一定要带毒软盘启动才能传到硬盘,杀毒 容易,只需改写引导区即可,如: fdisk/mbr ,kv200/k. KV200能查出 所有引导型病毒,底板能对引导区写保护,所以现在纯引导型病毒已 很少了.俺已经想出突破底版和KV200的方法,以后再说. **********二.文件型病毒*********** 要了解文件型病毒的原理,首先要了解文件的结构.COM 文件比较简单, 病毒要感染COM文件有两种方法,一种是将病毒加在COM前部,一种是加在文件 尾部,见下图: -------- ├-------------┤ ├ 病毒 ┤ ├JMP XXXX:XXXX┤ (原文件的前3字节被修改) ├------┤ ├-------------┤ ├原文件┤ ├ 原程序 ┤ -------- ├-------------┤ ├ 病毒 ┤ --------------- EXE 文件比较复杂,每个EXE文件都有一个文件头,结构如下: EXE文件头信息 --------------------------------- ├ 偏移量 ┤ 意义 ┤ ├00h-01h ┤MZ'EXE文件标记 ┤ ├2h-03h ┤文件长度除512的余数 ┤ ├04h-05h ┤...............商 ┤ ├06h-07h ┤重定位项的个数 ┤ ├08h-09h ┤文件头除16的商 ┤ ├0ah-0bh ┤程序运行所需最小段数 ┤ ├0ch-0dh ┤..............大.... ┤ ├oeh-0fh ┤堆栈段的段值 (SS) ┤ ├10h-11h ┤........sp ┤ ├12h-13h ┤文件校验和 ┤ ├14h-15h ┤IP ┤ ├16h-17h ┤CS ┤ ├18h-19h ┤............ ┤ ├1ah-1bh ┤............ ┤ ├1ch ┤............ ┤ --------------------------------- 当DOS加载EXE文件时,根据文件头信息,调入一定长度的文件,设置SS,SP 从CS:IP 开始执行.病毒一般将自己加在文件的末端,并修改CS,IP的值指向 病毒起始地址,并修改文件长度信息和SS,SP. ****三。混合型病毒**** 所谓混合型,即既能感染引导区,又能感染文件的病毒。但并非简单 的将文件型病毒和引导型病毒简单的加在一起,其中有一个转换过程, 这是最关键的。一般采取以下手法:文件中的病毒执行时将病毒写入引导 区,这时很容易理解的。染毒硬盘启动时,用引导型病毒的方法驻留内存, 但此时DOS并未加载,无法修改INT21,也就无法感染文件,可以用这样的 办法,修改INT 8 ,保存INT 21目前的地址,用INT 8服务程序监测INT 21 的地址是否改变,若改变则说明DOS已加载,则可修改INT 21指向病毒传染 段。以上是混合型病毒关键之处。 |
|