8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 4 5 6 7 8 9 10 ... 102

Локальные вирусы образуют многочисленную и весьма устойчивую популяцию, захватившую практически все стратегические уровни — от старушки MS-DOS, дожившей до наших дней разве что в виде эмуляторов (да и то больше но недоразумению, чем но потребности), до современных операционных систем, базирующихся на последних клопах Windows NT и UNIX. И хотя правильная политика разграничения доступа сводит активность вирусов к разумному минимуму, хитрый вирус всегда найдет чем поживиться, и локальные очаги инфекции вспыхивают даже в хорошо защищенных системах. Вирусов, уверенно функционирующих под UNIX и NT, пока немного, но с каждым годом их количество растет, причем чем дальше — тем стремительнее. Действительно, сначала идея приходит в голову кому-то одному — высококвалифицированному и опытному программисту, сочетающему в себе талант разработчика с кучей свободного времени (что встречается, прямо-таки скажем, нечасто) и знающему «задний двор» операционной системы как свои пять пальцев. Затем, по мере размножения вируса, его вылавливают десятки программистов с квалификацией пониже и «потрошат» ключевые алгоритмы дизассемблером, окультуривая ассемблерные листинги разъясняющими комментариями, доступными даже начинающим, а иногда и переводя их на языки высокого уровня... Для особо тупых создаются конструкторы вирусов, полностью автоматизирующие процесс разработки и низводящие свободный полет творческой мысли до простого тыканья мышью куда попало.

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

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

Здесь вы не найдете ни технологий полиморфизма, ни способов захвата RING0 с пользовательского уровня, ни антиотладочных или stealth-приемов. Каждая из этих тем заслуживает отдельного разговора и отдельной книги. Может быть, как-нибудь в другой раз...


г

ГЛАВА 1

БОРЬБА С WINDOWS-ВИРУСАМИ — ОПЫТ КОНТРТЕРРОРИСТИЧЕСКИХ ОПЕРАЦИЙ,

из которой читатель узнает, чем зараженный файл отличается от незараженного

Не рой яму другому, чтобы он не использовал ее как окоп!

Солдатская мудрость

ЧТО НАМ ПОТРЕБУЕТСЯ?

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


недель упорного труда для достижения поставленной цели должно оказаться достаточно.

Знание ассемблера — древнейшего языка программирования — обязательно. И одних лишь учебников в стиле* Assembler* Юроваи «Программируем на языке ассемблера IBM РС» Рудакова для его освоения катастрофически недостаточно, поскольку всякий язык познается лишь при общении «в живую». Сходите на любой системно-ориентированный сайт (например, www.wasm.ru) и попытайтесь ухватить суть ассемблера извне, а не изнутри. Ыа форумах, где дикие люди произносят непонятные слова, ругаются матом и обсуждают репродуктивные свойства вирусов, витает особый системный дух, делающий все сложное таким простым и понятым.

В конечном счете ассемблер — это всего лишь язык, причем очень и очень простой. Некоторые даже сравнивают его с эсперанто — десяток команд, и вы уже можете сносно говорить. Единственная сложность состоит в том, что вирусы, в отличие от нормальных программ, содержат множество ассемблерных извращений, смысл которых понятен только посвященным. Для непосвященных же это — интеллектуальный вызов! Это увлекательные логические (и психологические!) головоломки; это бессонные ночи, горы распечаток, яркие озарения и ни с чем не сравнимые радости найденных вами решений! Хотя, если говорить честно... все уже украдено до нас, тьфу, все головоломки давным-давно разгаданы, а задачки — решены. Ресурсы глобальной сети к вашим услугам! Посетите сайт удивительного человека и исследователя программ Марка Ру-синовича — http://www.sysinternals.com, а также отыщите его книгу «Внутреннее устройство Windows 2000». Еще вам пригодится знаменитый Interrupt List Рапь-фа Брауна — хорошо структурированный справочник но портам, ячейкам памяти и прерываниям (включая недокументированные). Наличие последних версий Platform SDK и DDK от Microsoft и Basic Architecture/Instruction Set Reference/System Programming Guide от Intel предполагается по умолчанию. Русские переводы технической документации, заполонившие книжные магазины, годятся разве что для студентов, работающих над очередным рефератом, который после написания идет в /dev/iiull (т. е. в архив на полку). Для реальной же работы они непригодны.

Из инструментария вам прежде всего понадобится хороший отладчик и дизассемблер. Конечно, свой выбор каждый волен делать самостоятельно, но ничего лучше soft-ice от NuMega (www.numega.com) и IDA PRO от Ильфака Гуильфапова (www.idapro.com) до сих пор не придумано. Оба этих продукта относятся к классу тяжелой артиллерии и по сложности своего управления Ничуть не уступают таким софтверным монстрам, как, например, Photoshop или CorelDRAW! Равно как изучение интерфейса Photoshopa не заменяет собой освоение техники рисования, так и искусство владения отладчиком/дизассемблером не сводится к чтению штатной документации. Ищите в Магазинах «Отладка Windows-приложений» Джона Роббинса, «Отладчик oft-ice» Романа Айрапетяна, «Образ мышления — дизассемблер IDA» Криса Касперскии «Фундаментальные основы хакерства — искусство дизассембли-Р°вания» его же.



0 ... 4 5 6 7 8 9 10 ... 102