目录 上一页 下一页 下一章

-234- PC机汇编语言实战精解

序,只要它存储在磁盘的BOOT扇区内,都会在操作系统启动之前被调入内存并由CPU执行,我们刚刚做过的那个实验恰好说明了这一点。由于这个原因所以有些人就编制了一些"特殊"的程序取代了合法的引导程序,这些"特殊"的程序在进入内存运行的时候会使用特殊的技巧将自己隐藏在内存的某个"角落"中,并时刻监视系统的运行。一旦时机成熟,它们就会象吃了兴奋剂一样疯狂运行,控制住整个PC系统。或者在屏幕上画个小球来回弹跳,或者将硬盘格式化后在显示一些信息将用户大骂一番,甚至于显示一个征婚广告搅乱用户的视线。这一类特殊的"引导程序"在国际上有一个通用的名字--计算机病毒。可不要小看这一个扇区512个字节的容量,它造就了个人电脑中一项专门的技术--病毒防治。很长一段时期内正邪两股势利在这一扇区中进行过激烈的碰撞,硝烟一直弥漫至今仍未散去。真不知道在大家的系统中是否有计算机病毒,如果你的机器染了毒,那么你在完成前面的实验时就可能会出现很多问题。所以一旦大家发现自己的电脑运行情况与笔者给出的情况有出入,那么建议大家在否定笔者的结论之前能够仔细地思考一番,也许真就是病毒作的怪。
  至此我们对操作系统在软盘上的第一个保留扇区已有了一些了解,有关计算机病毒的更多内容大家可以参阅相关书籍。硬盘上0面0磁道第一个扇区也有一个引导程序,但硬盘的"逻辑"构成与软盘不同。因为硬盘是分区存储的,所以硬盘上有多个引导程序。位于0面0磁道第一扇区的引导程序称为"主引导程序"(MAIN BOOT),各个分区的头部各有一个"分区引导程序"。主引导程序的任务就是将"活动"分区的分区引导程序调入内存执行,操作系统的启动运行由活动分区引导程序具体完成。下面给出的这个程序可以将硬盘主引导程序读入内存,我们将读入的数据写入A盘的0面0磁道第一扇区,将软盘的BOOT程序盖掉,大家能推断出用这片软盘引导系统的结果吗?
C:\ASM\>DEBUG[Enter]
-A100[Enter]
123D:0100
123D:0102
123D:0104
123D:0106
123D:0108
123D:010A
123D:010C
123D:010F
123D:0110
123D:0111
123D:0113
MOV
MOV
MOV
MOV
MOV
MOV
MOV
PUSH
POP
INT
INT
AH,02
AL,01
DL,80
DH,00
CH,00
CL,01
BX,0200
CS
ES
13
20
-G=100[Enter]
-W200 0 0 1[Enter]
  对于病毒而言,硬盘的主引导扇区可以说是"兵家必争之地"。所以笔者建议大家在保证系统无毒的情况下将硬盘主引导程序读出保存至文件中,对于以后分析一些"未知"病毒会有帮助。
  除了引导扇区之外,在DOS的保留扇区内还有一些值得我们注意的地方。比如下面这个程序所反映的内容:
CATALOG.
code


main

ASM
segment
assume
org
proc
mov


cs:code,ds:code
100h
far
bx,80h





;BX寄存器指向命令行参数计数值

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章