Как сделать вирус

1.Шаг перый-Определим цель
Итак делаем вирус типа троян.
Принцип действия: при запуске программа копирует саму себя в указанную вами директорию, добавляется в автозагрузку, дабы всегда висеть в ОЗУ компьютера. Перехватывает все события связанные с клавиатурой и мышью, фиксирует нажатия всех клавиш и нажатия кнопок мышки. Результаты перехвата записываются в текстовый файл в указанной директории.Содержимое файла отсылается на указаный почтовый ящик при каждом выходе пользователя в интернет.

2.Шаг второй-Клавиатурный шпион
Реализация клавиатурного шпиона базируется на API-функции :
Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
Description & Usage
GetAsyncKeyState determines whether a certain key is currently pressed and whether that key has been pressed since the last call to the function. This function fails if the thread calling it does not currently have the input focus.
Return Value
If the function fails (if the current thread does not have the input focus), the function returns 0. If the &H8000 bit of the return value is set, the key has been pressed at least once since the last time the thread called GetAsyncKeyState. If the &H1 bit of the return value is set, the key is currently pressed down.

Результат нажатия клавиши записывается в текстовую переменную,откуда заносится в файл, в указанном на диске месте. В данной работе файл является лишь промежуточной единицей, так как оттуда инфа передаётся в почтовый контрол (есть возможность доработки). Сам собственно код

3.Шаг третий-Самокопирование программы и автозагрузка
Самокопирование программы можно разделить на два этапа:
-первое: определить текущую директорию,откуда была запущенна программа
-второе: скопировать программу из этой директории в другую,более незаметную
Копирование осуществляется с помощью следующих API-функций:
Declare Function GetFullPathName Lib "kernel32.dll" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
Description & Usage
GetFullPathName appends a specified filename to the name of the current directory. For example, if you specify the file "hello.txt" and the current directory is "C:\My Documents\Junk", the resulting filename would be "C:\My Documents\Junk\hello.txt". This string is put into the string passed as lpBuffer. The function returns 0 if an error occured, or the length of the final string if successful.
На языке родных осин сиё означает,что функция возвращает строку, в которой указан путь к файлу, заданному в параметрах.

Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Description & Usage
CopyFile copies a file from one location to another, just like copying a file in Windows Explorer or in some other way. Depending on the value for bFailIfExists, it will either overwrite the target file if it already exists, or will fail. The function retuns 1 if successful, or 0 if an error occured.
Эта функция перемещает файл из одной директории в другую.Соответственно функция содержит два аргумента-строковые пути текущего и будущего расположения файла. Реализацию на основе этих функций можно скачать здесь

После того как программа скопировала себя в "безопасное" место, необходимо что-бы она стартовала каждый раз, когда пользователь загружает компьютер.Т.е постояно висела у него в оперативной памяти.Для автозагрузки используюется несколько API-функций.Фрагмент кода, на них основанный, можно скачать здесь

4.Шаг четвёртый-Отправление результатов на мыло
Реализация этого этапа связанна с использованием ocx-компонентов VB. Можно использовать cтандартный winsock компонет VB (реализация почтовой программы на его основе показана выше).Для удобства можно использовать SMTP-компонент, который так же представлен в этой теме.Код до банальности прост и не требует пояснения. В строках FROM и TO нужно указать адресс почтового ящика,на который вы хотите получать информацию от шпиона.
ВНИМАНИЕ: почтовый ящик должен быть того почтового сервера, который осуществляет отправку сообщений,например:
server:    smtp.mymail.ru
from:      spy@mymail.ru
to:         spy@mymail.ru
Код можно взять здесь

5.Шаг пятый-пример использования или морально-этический аспект
В принципе здесь всё ограничивается вашей фантазией,порядочностью и уголовным кодексом:)
Приведу чисто гипотетический пример:
Сайт знакомств->анкета с явными признаками даунизма-> фотография для знакомства(троян)->полученные пароли
Ещё раз хочу повториться, что выпендриваться лучше другим способом. Для меня это лишь возможность указать узкое место,но пользоваться наивностью может быть очень хорошего человека я бы не стал, а потому снимаю с себя всю ответственность за использование сего продукта в недемонстрационных целях:)
Сборку всего проекта можно скачать здесь

Назад

Hosted by uCoz