《病毒原理》
来源:百度文库 编辑:神马文学网 时间:2024/04/29 07:42:01
《病毒原理》
看完此文以后,你可以初步掌握病毒的原理,将消除对病毒的神秘感,将不会再恐惧病毒。如果,你很熟悉汇编,则可以轻而易举的编写病毒,不过一切后果自负!
>再次声明:编写病毒并传播对社会造成危害是违法的,如果编写病毒只在自己的电脑
>上实验,并严格控制使病毒不传播出去,则是个人的自由!不要忘记我们研究病毒的
>最终目的是为了消灭病毒!
***** 一、引导型病毒******
病毒能感染的只有可执行代码,在电脑中可执行代码只有引导程序和可执行文件,
当然,还有一类特殊的病毒,如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指向病毒传染
段。以上是混合型病毒关键之处。