当前位置:
文档之家› 第4章DOS病毒的基本原理与DOS病毒分析1PPT课件
第4章DOS病毒的基本原理与DOS病毒分析1PPT课件
病毒任务完成, 将 原 引 导 区 调 入 0:7C00执 行
原引导扇
系统正常引导
区的内容 要保护好
引导型病毒基本原理
病 毒 13H中 断 入 口
否 在读写软盘?
病毒被激活之后,即可根据感染条件实施暗地感染 、根据爆发破坏条件破坏系统并表现自己
引导型病毒 INT 13H
调用BIOS磁盘服务功能读写扇区
调用INT 13H子功能02H读扇区 调用INT 13H子功能03H写扇区
引导型病毒
调用BIOS磁盘服务功能读写扇区
A:\>debug
-a100
13AD:0100 mov ax,0201
读 到 内 存 0:7C00处
常规内存大小
控制权转到主引导程序
(病 毒 )
将 0:413单 元 的 值 减 少 1K(或 nK)
计算可用内存高端地址, 将病毒移到高端继续执行
INT 13H 中断功能
对磁盘扇 区的读写
修 改 INT 13H地 址 , 指 向 病 毒 传 染 段 , 将 原 INT 13H地 址 保 存 在 某 一 单 元
13AD:010C int 13
//执行命令
13AD:010E int 3 13AD:010E
//终止命令
Int 13H 需要的参数有哪些?
-g=100
//执行100开始的命令,遇到int 3会自动终止
-d 600
//查看扇区内容,一共512字节
引导型病毒
引导型病毒样例分析
该引导型病毒,通过截流盗取INT 13H中断监视系 统的运行并感染软盘引导扇区、硬盘主引导扇区
物理位置
引导型病毒
引导型病毒的思想
引导型病毒是一种在ROM BIOS之后,系统引导时 出现的病毒,它先于操作系统,依托的环境是 BIOS中断服务程序。
引导型病毒是利用操作系统的引导模块放在某个固 定的位置,并且控制权的转交方式是以物理位置为 依据,而不是以操作系统引导区的内容为依据。
因而病毒占据该物理位置即可获得控制权,而将真 正的引导区内容搬家转移或替换,待病毒程序执行 后,将控制权交给真正的引导区内容,使得这个带 病毒的系统看似正常运转,而病毒已隐藏在系统中 并伺机传染、发作。
;这时eax中存放着var1在内存中的真实地址
如果病毒程序中有一个变量var1,那么该变量实际在内存 中的地址应该是ebp+(offset var1-offset delta),即参考 量delta在内存中的地址+其它变量与参考量之间的距离= 其它变量在内存中的真正地址
有时候我们也采用(ebp-offset delta)+offset var1的形式 进行变量var1的重定位
引导型病毒 计算机启动过程
BIOS将启动盘的主引导记录(位于0柱面、0磁道、 1扇区)读入7C00处,然后将控制权交给主引导代 码。主引导代码的任务包括:
扫描分区表,找到一个激活(可引导)分区; 找到激活分区的起始扇区; 将激活分区的引导扇区装载到内存7C00处; 将控制权交给引导扇区代码;
引导型病毒
引导型病毒的触发
引导型病毒的触发
用染毒盘启动计算机时,引导型病毒先于操作系统 获取系统控制权(被首次激活),处于动态
因首次激活时修改INT 13H入口地址使其指向病毒 中断服务程序,从而处于可激活态
当系统/用户进行磁盘读写时调用INT 13H,调用的 实际上是病毒的中断服务程序,从而激活病毒,使 病毒处于激活态
感染前在相应扇区备份引导扇区/主引导扇区 通过分析MBR或DBR,或将其与正常的MBR/DBR
进行比较,若发现异常,可以断定感染了引导型病 毒
病毒修改中断向量,通过分析比较中断向量,也可 发现病毒的存在
引导型病毒
引导型病毒的基本原理
带毒硬盘引导
BIOS将 硬 盘 主 引 导 区
0:413存放
引导型病毒
引导型病毒的主要特点
引导型病毒是在操作系统之前进入内存,寄生对象又相对 固定,因此该类型病毒基本上不得不采用减少操作系统所 掌管的内存容量方法来驻留内存高端。而正常的系统引导 过程一般是不减少系统内存的。
引导型病毒需要把病毒传染给软盘,一般是通过修改INT 13H的中断向量,而新INT 13H中断向量段址必定指向内存 高端的病毒程序。
DOS病毒的基本原理与DOS病毒分析
主要内容
病毒重定位的含义与基本方法 引导型病毒的基本原理 文件型病毒的基本原理 感染COM文件的基本方法及COM文件病毒的清除 感染EXE文件的基本方法及EXE文件病毒的清除
病毒的重定位
病毒为什么需要重定位
病毒不可避免也要用到变量(常量),当病毒感染
病毒在感染前的Var2位置 Nhomakorabea病毒感染HOST后Var2的位置
4.1 病毒的重定位
4.1.2 病毒如何重定位
call delta ;这条语句执行之后,堆栈顶端为delta在内存中的真正地址 delta:pop ebp ;这条语句将delta在内存中的真正地址存放在ebp寄存器中
…… lea eax,[ebp+(offset var1-offset delta)]
//02->读取 01->1个扇区
13AD:0103 mov bx,0600
//读到内存13AD:0600的位置 ES:BX->数据缓冲区
13AD:0106 mov cx,0001
//从第一个扇区开始读取;CH:柱面号低8位;CL:低6位扇区号
13AD:0109 mov dx,0080
//DH磁头号;DL:物理驱动器号-从硬盘读取
HOST程序后,由于其依附到不同HOST程序中的
位置各有不同,病毒随着HOST载入内存后,病毒
中的各个变量(常量)在内存中的位置自然也会随着
发生变化
00400000
004010xx
HOST
00400000
004010xx
变量Var2 VIRUS
变 量 Var2的 实际位置
变 量 Var2 VIRUS
引导型病毒感染硬盘时,必定驻留硬盘的主引导扇区或引 导扇区,并且只驻留一次,因此引导型病毒一般都是在软 盘启动过程中把病毒传染给硬盘的。而正常的引导过程一 般是不对硬盘主引导区或引导区进行写盘操作的。
引导型病毒的寄生对象相对固定,把当前的系统主引导扇 区和引导扇区与干净的主引导扇区和引导扇区进行比较, 如果内容不一致,可认定系统引导区异常。