1 Востаннє редагувалося doh (19.01.2015 11:37:43)

Тема: Поведінка антивіруса щодо програми

Сама програма:

program abc;
const z = 100000;
var
  i, j, n : longint;
  a : array[1..z] of longint;

procedure swap(var a, b : longint);
var p : longint;
  begin
    p := a;
    a := b;
    b := p;
  end;

begin

for i := 1 to 100000 do a[i] := random(1000000);

for i := 1 to 100000 do write(a[i], ' ');
writeln(); writeln();
for i := 1 to 100000 - 1 do
  begin
    for j := 1 to 100000 - 1 do
      begin
        if a[j] > a[j + 1] then swap(a[j], a[j + 1]);
      end;
  end;

for i := 1 to 100000 do write(a[i], ' ');
end.
Virustotal

http://i.imgur.com/Ni1aKwV.png?1

Отже, просто бавився в паскалі, дійшов до того, що написав програму де рандомно заповнюється масив(10^5), а потім сортується методом бульбашки. Після компіляції антивірус (Bitdefender) пише Gen:Trojan.Heur.FU.dCY@ay19X7b в .exe файлі. Якщо зменшити розмір масиву антивірус нічого не каже. Чим спричинена така поведінка?

Подякували: 0xDADA11C71

2

Re: Поведінка антивіруса щодо програми

Як варіант: тип longint - 4 байти, пам'ять має виділитися одразу на 100000 елементів, тобто 400000 байт, фактично 400 КБ, сама ж програма - менше 1 КБ. Можливо, в цих антивірусах є алгоритм який співставляє розмір програми і розмір споживаної памяті і думають, що коїться шось недобре.

П.С. розмір масиву занесіть у якусь константу, а то говнокод виходить.

Подякували: koala, doh, A.N.Onim3

3

Re: Поведінка антивіруса щодо програми

В назві "вірусу" є Heur - тобто евристика. Щось схоже на вірус, але антивірус не певен. Наприклад, великі масиви випадкових чисел можуть використовуватися поліморфними вірусами для маскування. Просто поставте папку з результатами компіляції у винятки антивіруса.

Подякували: doh, Torbins2

4

Re: Поведінка антивіруса щодо програми

Антивірусні дегенерати думають, що ви розпаковуєте зломисний код бульбашковим сортуванням.

Подякували: koala, yarko2

5

Re: Поведінка антивіруса щодо програми

Master_Sergius написав:

Як варіант: тип longint - 4 байти, пам'ять має виділитися одразу на 100000 елементів, тобто 400000 байт, фактично 400 КБ, сама ж програма - менше 1 КБ. Можливо, в цих антивірусах є алгоритм який співставляє розмір програми і розмір споживаної памяті і думають, що коїться шось недобре.

П.С. розмір масиву занесіть у якусь константу, а то говнокод виходить.

Якщо зменшити кількість елементів повідомлення зникає. Розмір занесу у константу, обов'язково.

6

Re: Поведінка антивіруса щодо програми

koala написав:

В назві "вірусу" є Heur - тобто евристика. Щось схоже на вірус, але антивірус не певен. Наприклад, великі масиви випадкових чисел можуть використовуватися поліморфними вірусами для маскування. Просто поставте папку з результатами компіляції у винятки антивіруса.

Проблеми з виконанням файлу немає, я зразу додав вийняток. Тобто поліморфні віруси використовують великі масиви і операції з ними для ускладнення аналізу антивірусом?

7

Re: Поведінка антивіруса щодо програми

doh написав:
koala написав:

В назві "вірусу" є Heur - тобто евристика. Щось схоже на вірус, але антивірус не певен. Наприклад, великі масиви випадкових чисел можуть використовуватися поліморфними вірусами для маскування. Просто поставте папку з результатами компіляції у винятки антивіруса.

Проблеми з виконанням файлу немає, я зразу додав вийняток. Тобто поліморфні віруси використовують великі масиви і операції з ними для ускладнення аналізу антивірусом?

Можуть використовувати. Найпростіший спосіб щось зашифрувати - це згенерувати випадковий масив і проXORити його з текстом. Вийде удвічі більший ніби-то випадковий масив.

8

Re: Поведінка антивіруса щодо програми

koala написав:
doh написав:
koala написав:

В назві "вірусу" є Heur - тобто евристика. Щось схоже на вірус, але антивірус не певен. Наприклад, великі масиви випадкових чисел можуть використовуватися поліморфними вірусами для маскування. Просто поставте папку з результатами компіляції у винятки антивіруса.

Проблеми з виконанням файлу немає, я зразу додав вийняток. Тобто поліморфні віруси використовують великі масиви і операції з ними для ускладнення аналізу антивірусом?

Можуть використовувати. Найпростіший спосіб щось зашифрувати - це згенерувати випадковий масив і проXORити його з текстом. Вийде удвічі більший ніби-то випадковий масив.

Чому "ніби-то"?

9

Re: Поведінка антивіруса щодо програми

quez написав:

Чому "ніби-то"?

Бо друга половина - не випадкова.

10

Re: Поведінка антивіруса щодо програми

koala написав:
quez написав:

Чому "ніби-то"?

Бо друга половина - не випадкова.

Другий масив, ви хотіли сказати?
У вас є спосіб побачити невипадковість для результуючого масиву?

11

Re: Поведінка антивіруса щодо програми

Статистичний аналіз має показати певну кореляцію, якщо початковий текст був достатньо розрідженим.

12 Востаннє редагувалося quez (18.01.2015 23:06:30)

Re: Поведінка антивіруса щодо програми

koala написав:

Статистичний аналіз має показати певну кореляцію, якщо початковий текст був достатньо розрідженим.

Можете дати приклад такого тексту? Я завжди думав, що якщо ксорити з випадковою послідовністю будь-що, то отримаємо теж випадкову послідовність.

Або хоча б розкажіть, як він має виглядати.

13

Re: Поведінка антивіруса щодо програми

Статистичний аналіз має реагувати на ентропію даних (або їхню частину) коли вона наближається до ентропії машинного х86 коду, що тут взагалі не спостерігається. Тут авери казаться од розміру .bss секції, бо "правильні" програми мають іншу статистику.

Подякували: Chemist-i1

14 Востаннє редагувалося doh (18.01.2015 23:35:06)

Re: Поведінка антивіруса щодо програми

koala написав:
doh написав:
koala написав:

В назві "вірусу" є Heur - тобто евристика. Щось схоже на вірус, але антивірус не певен. Наприклад, великі масиви випадкових чисел можуть використовуватися поліморфними вірусами для маскування. Просто поставте папку з результатами компіляції у винятки антивіруса.

Проблеми з виконанням файлу немає, я зразу додав вийняток. Тобто поліморфні віруси використовують великі масиви і операції з ними для ускладнення аналізу антивірусом?

Можуть використовувати. Найпростіший спосіб щось зашифрувати - це згенерувати випадковий масив і проXORити його з текстом. Вийде удвічі більший ніби-то випадковий масив.

Пішов читати про xor.