Здравствуй. Сразу, без обиняков, скажу, что если ты считаешь себя кульно-навороченным супер-хацкером и самым крутым вирмейкером на территории бывшего Союза, я не думаю, что тебе стоит читать это дальше. Поскольку эта статья, и все последующие, предназначены для людей новых в вирмейкинге, практически ничего не знающих про вирусы, но жаждущих знаний и готовых эти знания получать. Я начну с самого простого, постепенно набирая уровень сложности. Но, тем не менее, уже следующую статью смогут читать с пользой для себя только люди, знающие ассемблер, поскольку рассказ пойдет о том, как пишутся простые вирусы для DOS. Конечно, вирусы пишутся не только на asm`е. Есть вири, написанные на basic`е, трубопоскакале, ссы++... и даже размножающиеся в bat-файлах, но в таких случаях они получаются... как бы это сказать, не маленькими. Ланда: теперь, короче, поехали. Чтобы грамотно начать, запасайся пивком, чипсами и возьми с собой клизму с горчицей литра на три. Ещё, правда, тебе понадобится компьютер, но это уже мелочи.
Ху из ит?
Скажи, родной, часто ли ты слышишь слово `вирус`? Наверное, очень часто - они повсюду, и услышать о них можно практически от любого человека. Но кто-то жалуется на то, что у него с конца капает, а кто-то - на то, что на жестком диске его компьютера сидит целый мазахакин бестиарий злобных и страшных компьютерных вирей. В принципе, сегодня уровень компьютерного образования довольно высок - даже в школах появился предмет под страшным названием "Информатика" (на информатике дети, на самом деле, учат преподавателей пользоваться локалками, троянками и даже просто особенностями национальных виндюков, но это неважно), и почти все газеты не обходятся без `электронных` рубрик (например, в какой-нть "центр-плюс" можно прочесть, как у Билла Гейтса работает электронное бидэ). Тем не менее, до сих пор множество людей абсолютно не знает, что такое компьютерный вирус. И что страшнее всего - они думают, что их пишут (ну кто знает - что компьютерные вирусы все-таки пишут, а не клеят и не выпиливают лобзиком из фанеры) какие-нибудь террористы, вроде Басая Шамилева, только в очках и листком бумаги (нотебукой) в руках, обязательно в черном кожаном пальто и темных очках, а также с лысой головой. Но ты-то, по крайней мере, понимаешь, что это не всегда так. Ведь ты же сам не прочь написать собственный вирь в образовательных целях и, в то же время, не лысый, не в кожаном пальто и журнал читаешь без темных очков.
Что такое компьютерный вирус? Программа, of сourse. Только не совсем обычная, вернее, даже совсем не обычная. Почти всегда - это ... паразит, то есть программа, которая не может существовать сама по себе. Вирусы различают по типам заражения, операционным системам, на которых они существуют, по способам распространения. Вообще говоря, очень трудно строго классифицировать все вирусы, четко разделив их на группы - скорее, надо для каждого вируса составлять табличку свойств - где живет, как размножается, что делает в час "X".
Какие они бывают?
Virii бывают:
загрузочные
файловые
макро
сетевые
полиморфики
резидентные
stealth
террористы
трояны (trojans)
В принципе, подробнее об этом можно прочесть, скачав AVP Encyclopedia, и даже поглядеть на спецэффекты некоторых (не на форматирование HDD, конечно).
Загрузочные
Обычно совмещают в себе еще и функции резидентных. Загружаются до операционной системы (для этого прячут тело жирное в утесах - т.е. в первых секторах диска/дискеты), затем прячутся в памяти, отрезая от нее кусок так, что вируса не будет видно программами вроде MEM.EXE. Делается это элементарно - поправкой значения в 2 байтах по адресу 0:413. Некоторые прячутся в MCB-блоки, делая вид, что они - данные DOS. Существует одно существенное ограничение на эти вирусы - их размер, поскольку им необходимо размещаться в первых секторах диска. А это означает, что такие вирусы будут обладать ограниченными способностями. Да и... как часто тебе приходится грузиться с дискетки? Вот то-то же. Но об этом - уже непосредственно в процессе ознакомления с такими вирусами.
Файловые
Вирусы, каким-либо образом использующие файловую систему операционки. Самые распространенные - для DOS. Наверное, больше 3/4 вирусов именно файловые (из-за большой распространенности отошедшей теперь уже в прошлое файловой операционной системы с пошлым именем, кое мы выше уже упомянули), то есть заражающие исполнимые файлы EXE, COM... Есть даже и для BAT-файлов, но их, скорее, надо относить к макровирусам. Имеется довольно большое количество способов заражения. Но обычно кулвирмейкеры не утруждают себя придумыванием новых способов, а штампуют старые методы (используя конструкторы ViriiLab`ов и полимофик-engine`ов).
Макро
Макровирусы обычно не содержат машинных кодов и исполняются не как обычные программы форматов EXE или COM, а как программы, юзаемые различными интерпретаторами, например, basic`ом или mail-script интерпретатором Outlook Express. Типичный пример macros virius - вирусы, поражающие текстовые файлы MS Word. Такие вирусы одно время были довольно эффективны, поскольку антивирусное ПО исходно было предназначено для поиска вирусов в исполнимых файлах, а не в мешанине текстовых макросов. Кроме того, присутствие макровируса определить несколько сложнее. Существуют вариации вирусов на тему полиморфности кода. Появляются везде, где только есть внутренний язык, позволяющий осуществлять работу с жестки диском и/или памятью. Были замечены даже в Interactive Disassembler.
Сетевые
К сетевым вирусам, вообще говоря, можно отнести вирусы, которые распространяются используя возможности сетевых протоколов. Самые популярные сетевые вирусы - черви. Для своего размножения они используют недокументированные возможности и ошибки в реализации сетевых протоколов и программ. Самый-самый сетевой вирус - вирус Морриса, создавший целую эпопею борьбы с ним в конце 80-х. Старые сетевые вирусы использовали аппаратные возможности компьютеров и, зачастую, почти не обращались к ресурсам компьютеров, записывая свои жирные тела в оперативную память. Но настало время бешеных 90-х, и появились почтовые вирусы - смесь сетевых и макровирусов. Такие вирусы используют mail-script`ы, которые позволяют как размножаться используя адресные книги (рассылая свои копии всем твоим знакомым), так и получать доступ почти ко всем ресурсам компьютера.
Источник: Энциклопедиа Касперского
Разместил: Helfer