Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Безопасность -> Вирусы -> "Вирусы", "Черви", "Драконы" и резиденты на службе прогресса.


"Вирусы", "Черви", "Драконы" и резиденты на службе прогресса.


при изучении языка ассемблера и системы MS-DOS


БЛАГОДАРНОСТЬ:
==============
     Великая благодарность всем тем, кто, просмотрев  рукопись, высказал цен-
ные замечания и советы.


ПРИЗЫВ:
=======
     ХЭКЕРЫ, А ТАК ЖЕ ИМ СОЧУВСТВУЮЩИЕ! призываем Вас включиться в благое де-
ло повышения уровня образования  программирующей  общественности! Опубликуйте
тексты вашего virusware, уже ловимого антивирусными  средствами; снабдите его
подробными коментариями, чтобы прочитавший обогатил свое  знание языка ассем-
блера и системы MS-DOS, взял на заметку наиболее остроумные приемы программи-
рования и т.п.

     HACKERS  &  HACKERLIKE  ONES!  Our  sinsere  appeal to  you:  make  your
contribution in process of improving  programmers'  skill  level! Publish the
sources of your virusware which have neutralized by antivirusware & hence are
no more your  classified  know  how. Provide it with  detail  commentary  for
reader  to get  use of  it.  This way  programming folk  could improve  their
knolidge of  assembler  & MS-DOS, enrich their skill by new wit know how & so
on.


ОГЛАВЛЕНИЕ:
==========
гл.1 (ЗДЕСЬ МЫ ПУДРИМ ВАМ МОЗГИ)
гл.2 ЛИТЕРАТУРА И ИНСТРУМЕНТАРИЙ
гл.3 ПРЕРЫВАНИЯ, ТАБЛИЦА ВЕКТОРОВ ПРЕРЫВАНИЙ, СОЗДАНИЕ РЕЗИДЕНТОВ (идеология)
гл.4 СОЗДАНИЕ РЕЗИДЕНТНЫХ ПРОГРАММ (практическая реализация)
гл.5 ЧУТЬ-ЧУТЬ о PSP
гл.6 ПЕРВАЯ ПАКОСТЬ (создание ублюдочного резидентного вируса, грохающего за-
     ражаемую программу)
гл.7 НЕКОТОРЫЙ ПРОГРЕСС (создание ублюдочного резидентного вируса, не гроха-
     ющего данные). ПЕРВОЕ ЗНАКОМСТВО СО СТЭЛС-ВИРУСАМИ (невидимками)
гл.8 СОЗДАНИЕ ВЕСЬМА ПРОДВИНУТОГО (по сравнению с предыдущими) ВИРУСА, ПОДОБ-
     НО V2, ПРЯЧУЩЕМУСЯ В ЗАГОЛОВОК ЕХЕ-ФАЙЛА, НЕПОРТЯЩЕГО ДАННЫЕ И ЗАПУСКА-
     ЮЩЕГО ПОРАЖЕННЫЙ ФАЙЛ С ПЕРВОГО РАЗА
гл.9 СОЗДАНИЕ "ДРАКОНА", ШПИОНЯЩЕГО ЗА ЗАПУСКОМ ПРОГРАММ
гл.10 СОЗДАНИЕ ВИРУСА, ИСПОЛНЯЮЩЕГО ФУНКЦИИ ЗАГРУЗЧИКА ЕХЕ-ФАЙЛОВ
гл.11 СОЗДАНИЕ ПРИМИТИВНЕЙШЕГО ВИРУСА-СПУТНИКА ДЛЯ ЕХЕ-ФАЙЛОВ
гл.12 СТАНДАРТНЫЙ СПОСОБ ЗАРАЖЕНИЯ ЕХЕ-ФАЙЛОВ
гл.13 СТАНДАРТНЫЙ СПОСОБ ЗАРАЖЕНИЯ СОМ-ФАЙЛОВ
гл.14 ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ FindFirst и FindNext ДЛЯ УВЕЛИЧЕНИЯ
      ПОРАЖАЮЩЕЙ СПОСОБНОСТИ
гл.15 В КОТОРОЙ ВЫ УЗНАЕТЕ О ПРОКЛЯТИИ MS-DOS --  БУТОВЫХ ВИРУСАХ
      (создание антивирусного фильтра и примитивного бутового вируса)


АНОНС СЛЕДУЮЩЕЙ ВЕРСИИ
======================
     Этот текст, -- VirTech 1.0, -- что-то вроде ликбеза. В  следующей версии
планируется рассказ (с подкреплением соответствующими примерами) о:

     - способах подавления трассировки;
     - вирусах, заражающих системные драйверы;
     - вирусах, заражающих файлы путем модификации FAT;
     - криптографии, полиморфных вирусах, в том числе обходящих эвристические
анализаторы (такие, как "Doctor Web");
     - сетевых червях;
     - модульной сборке вирусов в памяти;
     - вирусах, работающих  в защищенном режиме процессоров 80286,80386 и по-
этому неуязвимых для мониторов и ревизоров.



СПИСОК ТЕРМИНОВ И СОКРАЩЕНИЙ
============================

     "дракон" (слэнг амер. хэкеров) -  программа,  выполняющая  действия,  не
фиксируемые пользователем  PC; -- совсем  не обязательно - "вирус". Это может
быть что-либо системное, или - какое-либо hackerware.
     "жокей" (слэнг амер.  хэкеров) - программист, решающий задачу, что назы-
вается влоб, нетворчески.
     BIOS - (базовая система ввода/вывода) - грубо говоря,  это такая микрос-
хема, в  которую  навечно  зашита  куча  стандартных подпрограмм, реализующих
ввод/вывод информации. Обращение к BIOS-у <==> вызов какой-либо  из этих под-
программ.
     PC - персональный компьютер (вообще-то  в  тексте  в большинстве случаев
правильнее было бы сказать "процессор", но "PC" -- кажется более наглядно).
     ОЗУ - оперативная память
     п/п-ма - подпрограмма
     PSP - префикс программного сегмента
     HDD - жесткий диск ("винчестер")
     FDD - гибкий диск - дискета
     MBR - главный загрузочный сектор жесткого диска (Master Boot Record)
     BR -  загрузочный сектор жесткого диска (Boot Record)
     V1 - первый из описанных ниже вирусов; V2,V3,... - соответственно...


гл.1    (ЗДЕСЬ МЫ ПУДРИМ ВАМ МОЗГИ)
/может быть это даже можно назвать предисловием/
================================================

А  ЗАЧЕМ  ЭТО  НУЖНО ?
---(реклама технической стороны метода)----

     Опыт педагогики неоспоримо свидетельствует, что изучить что-либо в крат-
чайший срок  и с максимальным качеством можно лишь  при наличии сильной внут-
ренней мотивации, говоря проще -- в случае если это действительно  Вас прика-
лывает.
     Изучать ассемблер  по классической методике  -- уж поверьте нам -- тоска
зеленая, а вот "вирусы", "драконы",  резиденты  и проч. -- нечто весьма  при-
кольное, подчастую нетривиальное.
     Здесь (при  условии минимума осторожности) открывается воистину бескрай-
нее  поле  деятельности;  язык  и основы низкоуровневой  организации  системы
MS-DOS изучаются с потрясающей скоростью и практически без зубрежки.


А    ХОРОШО   ЛИ   ЭТО ?
---(моральный аспект)----

     ДА --
     В случае, если Вы не ставите своей целью кому-либо крупно насолить, зас-
тавить мир содрогнуться  и  вообще не  ищите  славы Герострата (надеемся  что
так).
     Помните, что интеллект проявляется вовсе не в умении форматировать "вин-
честер" и необратимо  грохать данные. Шедевры вирусной технологии как правило
совершенно безвредны и даже не  вызывают  серьезного  перерасхода ресурсов PC
(оператив. память, быстродействие и проч.).
     Кроме того -- здесь реализуется масса новых технических решений, могущих
быть использованными и в др. областях (защита информации в PC,  гибкое управ-
ление ресурсами  PC,  низкоуровневая доводка программ, создание всевозможного
HackerWare и проч. и проч. и проч...).
     Выскажем подозрение, что "вирусология" (равно как и "контр-вирусология")
невольно явилась  кузницей высококвалифицированных кадров для многих областей
компьютерного ремесла.



А    ЗАКОННО  ЛИ   ЭТО ?
---(правовой аспект)----

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


ЧУТЬ-ЧУТЬ ОБ ОБМАНУТЫХ НАДЕЖДАХ
--------(ориентировка)---------
     Когда авторы  только начинали создание  сего текста, они думали, что это
будет суперпростое,  супердоступное, суперпонятное пособие по изучению ассем-
блера и  MS-DOS. Поэтому в качестве  главного принципа построения  был выбран
вот какой:  "не грех повторить материал разок, и еще разок, а может быть -- и
еще разок". Продвинутый читатель, понявший все с первого  раза может восклик-
нуть: "ну что за занудство! жуют одно и  то  же!  Да я это и раньше знал!" Но
это пособие для тех, кто еще не все знает, а только собирается узнать. И есть
риск, что не все все сразу поймут. Авторы ориентируются в изложении именно на
такого читателя (похожий принцип реализуется в туризме: во  время похода пер-
вым идет самый слабый турист и весь отряд ровняется по нему. Никто не рискует
выбиться из сил до объявления привала).
     Заранее просим прощение за стиль написания, может быть  режущий Ваше эс-
тетическое восприятие.
     И вот еще что: все представленные  алгоритмы -- в первую очередь -- наг-
лядное пособие. Модельные задачи. Все они работают (отлажены  и испытаны). Но
главный их принцип такой:  "здесь  эффективность принесена в жертву понятнос-
ти". Настоящие же вирусы пишутся  не  совсем так. Там экономится каждый  байт
кода. Цель -- минимальная длина при максимальном быстродействии. Иногда алго-
ритм такой программы столь хитро закручен, что трудно разобраться в нем, даже
имея исходник. Вы, поняв основной принцип, можете написать  такую программу и
это будет уже чисто творческий акт.
     И самое последнее: данное пособие вряд-ли может принести пользу, если Вы
не будете читать (или хотя-бы просматривать) основную литературу /1/,/2/,/4/.
Данное пособие не рассчитано на дублирование базовых сведений.



гл.2  ЛИТЕРАТУРА И ИНСТРУМЕНТАРИЙ
=================================

ЛИТЕРАТУРА
==========
     Клевых книжек  навалом; -- Look here:

     1. Питер Абель. Язык ассемблера  для  IBM PC и программирования. пер.  с
англ. Москва: "Высшая школа", 1992. << это -  хороший ликбезовский справочник
>>

     2. Р.Джордэйн. Справочник программиста персональных компьютеров типа IBM
PC, XT и AT. Москва, финансы и статистика, 1991.

     3. Использование Turbo Assembler при разработке программ. Киев: "Диалек-
тика", 1994.

     4. П.Нортон. Персональный компьютер фирмы  IBM  и  операционная  система
MS-DOS.  пер.  с  англ. Москва: "Радио и связь", 1992. << это - справочник по
прерываниям >>

     5. П.Нортон, Д.Соухэ. Язык ассемблера  для  IBM PC пер. с англ.  Москва:
"Компьютер", 1993.

     6. Е.Касперский. Компьютерные вирусы в MS-DOS. Москва: "ЭДЕЛЬ" -- "Рене-
санс", 1992.

     7. Я.Белецкий. Энциклопедия языка СИ. Москва: "Мир", 1992.  << там много
ценного о TASM-е >>

     {8}. Подшивки журнала "Монитор" с момента основания.

     9. А.Щербаков. Разрушающие программные воздействия. Москва: "Эдель"; Ки-
ев : Фирма ВЕК, 1993.


ИНСТРУМЕНТАРИЙ
==============
     Клевых Tools -- до фигА и больше. Рекомендуем для начала не бить воробь-
ев из пушек -- не злоупотреблять фирменными пакетами Turbo Debugger's и т.п.
     Может пригодиться:

     1. Работать лучше всего не  в  Norton Comander-e, а в Volkov  Comander-e
поскольку последний позволяет  выгонять  резиденты из памяти без перезагрузки
PC).                                --------------------------¬
    2. tasm.exe турбоассемблер--T---пакет TASM !!! НЕОБХОДИМО!¦
    3. tlink.exe турболинкер-----   ---------------------------
     4. Thelp.exe +  гипертексты  -- восхитительный электронный справочник по
прерываниям, структуре данных и т.д.
     5. Diskedit.exe и  ndd.exe (на системной  дискете) -- если  Вы  случайно
грохнете MBR или Boot-Record (на той-же системной дискете имейте выписанные с
диска  MBR  и  Boot-Record).  Или  же  заимейте  rescue-дискету  (см.  Norton
utilities)
     6. debug.com (из пакета MS-DOS) (тривиальщина);
     7. hiew.exe -- (Hacker's view Version 4.17) экспресс ре дактор EXE- фай-
лов; содержит ассемблер 8088 и дизассемблер 80386, позволяет кучу всего;
     8.  afd.com  (Advanced Fullscreen Debug Version 1.00  (и  выше))  чУдная
штучка, позволяет кучу всего;
     9. Low.exe  -- средство для  просмотра области данных BIOS;
     10. Code.exe -- выдает key- и scan- коды клавиш;
     11. txtscr.com -- грабер текстового экрана в файл;


гл.3 ПРЕРЫВАНИЯ, ТАБЛИЦА ВЕКТОРОВ ПРЕРЫВАНИЙ,  СОЗДАНИЕ РЕЗИДЕНТОВ (ИДЕОЛОГИЯ)
                               (начнем)
==============================================================================
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-¬
¦    ПЕДПОЛАГАЕТСЯ, ЧТО ЧИТАТЕЛЬ УЖЕ ЗНАКОМ  С  МЕХАНИЗМОМ АДРЕССАЦИИ  8088,¦
¦СТЕКОМ, ПОДПРОГРАММАМИ, КОМАНДАМИ ПЕРЕХОДОВ И ПЕРЕСЫЛОК. Если же -- нет, --¦
¦он при желании может изучить этот необходимый минимум достаточно быстро.   ¦
L----------------------------------------------------------------------------
     Прерывание (термин еще пока-что темный) -- зачем оно вообще нужно ?
     Дело в том, что прерывания возникают в случае, если PC необходимо немед-
ленно среагировать на какую-либо исключительную ситуацию,  изменить режим ра-
боты или выполнить определенную специфическую операцию.
     Не будем пока давать многоэтажные классификации  прерываний, скажем лишь
что:
     ПРЕРЫВАНИЕ --  это сигнал, генерируемый аппаратурой (аппаратное прерыва-
ние) или Вашей программой (программное прерывание), в ответ на который PC вы-
зывает определенную подпрограмму  (п/п), а после завершения ее работы возвра-
щает управление обратно  Вам.  Каждое прерывание характеризуется СВОИМ ОРИГИ-
НАЛЬНЫМ НОМЕРОМ. (есть прерыв-я  N0,N1,N2,N3 и т.д. -- всего их -  256 штук).
Где находится  п/п-ма,  которой  передается управление по сигналу-прерыванию?
Либо в  BIOS-е (ПЗУ), либо в системе (модули  MS-DOS, которые после включения
PC загружаются в память и сидят  там до самого момента выключения). Вызов ап-
паратного прерывания скрыт от нашего глаза, тогда как вызов программного -- с
точки зрения программиста -- это такая команда (опережая  события назовем ее:
INT <номер прерывания>).
     Например: Вы  нажали любую клавишу.  Тут же PC сгенерил сигнал (прерыва-
ние), в ответ на  который  активизировалась специальная п/п-ма, которая "рас-
толковала" компьютеру какую именно клавишу Вы нажали. Это  -- пример АППАРАТ-
НОГО прерывания --  сигнала, генерируемого АППАРАТУРОЙ. Еще пример: Вы хотите
напечатать на принтере строку символов (или даже просто -- один  символ). При
этом Вы конечно  можете написать специальную программу (очень сложную), кото-
рая будет это делать. Она будет работать с  портами принтера (брррр-рр-ррр!),
производить тысячу и одну проверку и т.д. А можно поступить иначе. Ведь такая
программа уже существует (в BIOS-е).  Нужно  лишь ее вызвать. А это  делается
при помощи специальной  команды  -- генерации ПРОГРАММНОГО прерывания. Выгля-
деть вызов прерывания для печати 1  символа будет так: INT 17h (но перед этим
Вы еще должны будете определенным  образом  загрузить регистры AX и DX).  Как
просто! Даже не верится.
     ГЛАВНАЯ ИДЕЯ (ЗА  ЧТО МЫ СЕЙЧАС  ВОЮЕМ): прерывания возникают  в  весьма
важные моменты  работы PC. Существуют п/п-мы  их обработки. Эти  п/п-мы могут
быть заменены нами на наши собственные п/п-мы, которые  делают в вышеупомяну-
тые важные  моменты  то, что НАМ нужно! А это -- путь к полному контролю всех
функций PC. -- В наиболее ответственные  моменты МЫ решаем как PC должен пос-
тупить.

     А вот механизм реализации прерываний:
     1.Возник сигнал прерывания номер  такого-то  (над его сущностью Вы пожа-
луйста пока не размышляйте);
     2.PC сообразил, что следует  прервать  на время выполнение текущей прог-
раммы и передать управление соответствующей п/п-ме.
     3.PC запоминает, куда  нужно вернуть управление, когда эта п/п-ма завер-
шится и передет управл-е п/п-ме.
     4.П/п-ма выполнилась, завершилась и управл-е вернулось  к основной прог-
рамме, причем в то место, перед которым возник сигнал прерывания.

     Как правило п/п-ма, обрабатывающая сигнал прерывания, сидит где-то дале-
ко от места пользовательской программы, где прерыв-е возникло. Следовательно,
чтобы вызвать эту далекую п/п-му (CALL Far) необходимо знать ее сегментно-оф-
фсетный адрес (2 слова).
     Как PC  узнает этот адрес (тем боллее если  мы дерзнем заменить стандар-
тную п/п-му нашей собственной) ?
     Очень просто. Всего имеется  256  прерываний с разными номерами. Каждому
из них соответствует  определенная п/п-ма обработки. Каждая п/п-ма имеет свой
адрес вызова  (2 слова). И эти  двухсловесные адреса хранятся  в ОПРЕДЕЛЕННОЙ
области памяти в СТРОГОМ ПОРЯДКЕ (по возрастанию номера  прерывания). Эта об-
ласть памяти называется таблицей векторов  прерываний  (термин  еще  пока-что
темный, и  Вы о  нем не думайте). Эта область  памяти (оперативной памяти PC)
начинается по адресу 0000:0000  (т.е. в самом начале) и занимает 1  Кб.
Далее
 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.