恶意代码分析

磁盘结构与组织

磁盘分为两种:软盘(Diskette)和硬盘(Fixed Disk)。

  • 扇区:每个磁道分为若干扇区(Sector),每个扇区可以放512字节的数据。

磁道

磁盘格式化时被分成若干个同心圆,称为磁道。每条磁道由首部、18个扇区、尾部构成。

  • 首部:首部是允许一定的定位误差间隔
  • 尾部:为了防止不同驱动器对软盘格式化时快速的变化

扇区

每个磁道分为若干扇区(Sector),每个扇区可以放512字节的数据。每个扇区由四个部分组成:

  • 标识区(ID区):标识扇区的开始和记录目标地址的信息
  • 间隙:保护数据
  • 数据区:记录数据
  • 间隙:同上述间隙

物理扇区和逻辑扇区

磁盘的扇区定位可以通过两种方式实现:物理扇区和逻辑扇区

物理扇区

物理扇区是指某个扇区在磁盘上的绝对位置,由驱动器号、面号、磁道号、扇区号4个参数组成

逻辑扇区

逻辑扇区是指一张盘片上的所有扇区按扇区的访问顺序进行统一顺序编号,这个编号就称为逻辑扇区或相对扇区。

换算关系

逻辑扇区号(十进制) = (道号X总面数+面号)X每道扇区数+扇区号-系统隐藏扇区数-1
其中,系统隐藏扇区为在DOS区前非DOS使用的扇区数,软盘为0,硬盘为17

DOS系统分配磁盘存储空间的最小单位是簇,一个簇由几个连续的逻辑扇区组成。

DOS磁盘组织

DOS系统格式化的软盘由4个部分组成:引导扇区、文件分配表FAT、文件目录表FDT、数据区

引导扇区

Boot Area,位于逻辑0扇区处,即软盘的0面0道1扇区上,由FORMAT.COM程序格式化磁盘时形成。其主要功能是完成DOS系统的启动。引导扇区由3个主要部分组成:

  • 磁盘基本输入输出参数块BPB:在引导扇区位移0B-1CH处,是长度为19个字节的BPB。BPB最后三个字节,从位移18H开始,说明磁盘的每道扇区数、磁头个数、隐藏扇区数,它们是给磁盘驱动程序使用的。
  • 磁盘基数表: 对DOS引导盘,从引导扇区的位移21H开始的11个字节为磁盘基数表,它主要供磁盘驱动器硬件操作时使用
  • 引导记录程序

文件分配表FAT

FAT是DOS的一个重要数据表格,从逻辑1扇区开始,它存放每个文件在磁盘上的分布信息。磁盘上有两个完全相同的文件分配表,FAT1和FAT2,FAT2是FAT1的备份,是为了防止FAT1被破坏而特意设置的。

文件目录表FDT

它记录根目录下每一个磁盘文件的文件名、扩展名、生成时间、文件长度等信息

数据区

除了上述三个区域外,磁盘剩余的空间都用来存储程序和数据。

软盘

软盘容量计算:磁道数X每个磁道扇区数X扇区可存储数据面数X512(可移动U盘)

硬盘

硬盘容量=柱面数X扇区数X每扇区字节数X磁头数

硬盘的数据组织

硬盘系统可以划分为几个分区,用以支持DOS以外的操作系统。硬盘最多可分为4个分区,每个分区可以具有不同大小的存储空间,但每个分区分配的存储空间是连续的。每一种操作系统在硬盘上建立的分区,操作时都由一个自己特有的实用程序来完成。DOS分区的实用程序为FDISK.COM

硬盘数据分区

硬盘初始化时,可根据用户选择的地址和大小建立一个或几个用于DOS的区域。经过分区后,在硬盘上就建立了一个硬盘的主引导扇区和几个分区(不大于4个):

主引导扇区

主引导扇区位于硬盘0面0柱1扇区,它是硬盘上的第一物理扇区。组成:

  • 主引导程序(位移量000H-1BDH):用于硬盘启动时将系统控制转给用户指定的并在分区中登记了的某个操作系统区
  • 分区表(位移量1BEH-1FDH):用于指明硬盘划分的情况,含4个可能的分区,每个分区的记录占用16个字节,由FDISK.COM程序建立
    主引导扇区的最后两个字节(位移量1FE-1FFH):”55AA”为其结束标志。

主引导扇区存放硬盘的主引导记录。硬盘主引导记录包括三个方面的内容:

  • 主引导程序代码:用来找出系统当前的活动分区,负责把对应的一个操作系统的引导记录(当前活动分区的引导记录)装入内存,然后把控制权转给该分区的引导记录。
  • 分区表:从位移量1BEH开始的64个字节是硬盘分区表

   转载规则


《恶意代码分析》 fightingtree 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录