Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Азбука хакера 3. Компьютерная вирусология - Собейкис В.Г.

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 19 20 21 22 23 24 < 25 > 26 27 28 29 30 31 .. 123 >> Следующая

mov ah,4EH .поиск первого (search first)
xor cx.cx ;только нормальные файлы
SLOOP: int 21H '.проводим поиск
jc SDONE ;ни один не найден, выход call INFECTF1LE один найден,
инфицируем его mov ah,4FH функция "поиск следующего" (search next)
jmp SLOOP ;снова проводим поиск
SDONE:
Процесс инфекции стал более сложным, и теперь мы имеем вызов к отдельной
процедуре заражения. Чтобы CSpawn работал правильно, нам нужно сделать
еще одно дополнительное действие. В предыдущей главе вы узнали, что
функции поиска DOS используют 43 байта DTA (Disk Transfer Area - область
обмена с диском). А где она, эта DTA?
При старте программы старенькая DOS устанавливает DTA в ds:0080H, но
программа может перемещать эту область, когда она выполняется с помощью
функции 1АН прерывания 21Н.
Так как программа-жертва уже выполняется, DOS перемещает DTA в сегмент
данных программы-жертвы, и та может передвинуть его куда-то в другое
место. Поэтому перед выполнением поиска CSpawn должен восстановить DTA.
78
ГЛАВА 2. Самовоспроизводство
Это легко выполняется с помощью функции 1 АН. Пара ds:dx устанавливается
на адрес, где вам хочется разместить DTA. Для нас вполне годится локация
ds:0080H, выставляемая по умолчанию:
mov ah,1AH mov dx,80H int 21H
Заметим, что если CSpawn проведет поиск и инфекцию раньше, чем жертва
будет выполнена, размещение DTA в офсете 80Н будет плохой идеей.
Дело в том, что параметры командной строки сохраняются в той же локации,
и наш поиск вычистит эти параметры.
К примеру, если диск копирует программу MUSY, вызываемую такой командной
строкой: C:\>MUSY А: В: (копирование из А: в В: ), то наш поиск сотрет
"А: В> и оставит MUSY без указания, куда и откуда копировать файл.
В такой ситуации нам следует зарезервировать другую область памяти и
переместить туда DTA из области, назначенной по умолчанию.
Значит, нам нужно определить: DTA DB 43 dup (?) и затем настроить ее с
помощью:
mov ah,1AH mov dx,OFFSET DTA int 21H
Для вируса Toad мы могли использовать локацию DTA, выбираемую по
умолчанию, потому что вирус разрушал инфицированную программу.
Нас не волновали параметры разрушаемой программы. Но в данном случае
вирус не разрушает свои жертвы, поэтому мы должны беспокоиться о
сохранении параметров.

Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
Инфекция файлов
Как только CSpawn находит файл, пригодный для заражения, начинается
процесс инфицирования. Для заражения программы CSpawn:
1) переименовывает жертву и
2) создает свою копию с именем жертвы.
В следующий раз, когда имя жертвы печатается в командной строке (или
когда пользователь кликает по ссылке), вместо программы выполняется
вирус.
Чтобы переименовать жертву, вирус копирует имя программы из DTA, куда оно
помещается механизмом поиска, и переносит имя в буфер, называемый
SPAWN_NAME.
Затем CSpawn меняет имя в этом буфере, выставляя "N* вместо последней
буквы. Далее он вызывает функцию Rename (функцию 56Н прерывания 21Н).
Чтобы использовать данную функцию, пара ds:dx должна указывать на
первоначальное имя (в DTA), а пара es:di должна указывать на новое имя
(in SPAWN_NAME):
mov dx,9EH ;DTA+ 1 EH, первоначальное имя mov di,OFFSET SPAWN.NAME mov
ah,56H int 21H
И, наконец, вирус создает файл с первоначальным именем жертвы:
mov ah,3CH ;003-функция создания файла mov сх,3 ;скрытый, читаются только
атрибуты mov dx,9EH ;DTA+ 1ЕН, первоначальное имя int 21Н
а затем записывает в этот файл свою копию:
ЯП
ГЛАВА 2. Самовоспроизводство
mov ah,40H iDOS-функция записи файла mov cx,FINISH-CSpawn ;размер вируса
mov dx,100H ;локация вируса int 21Н
Отметим, что когда CSpawn создает файл, он устанавливает для него атрибут
hidden (скрытый). Для этого имеются две причины. Во-первых, подобное
действие затрудняет дезинфекцию. При осмотре директории несчастный
пользователь не видит вирусных файлов и не может удалить их.
Для выявления вируса необходима особая утилита из набора Norton
Utilities. Во-вторых, это не дает вирусу заражать самого себя.
Допустим, CSpawn инфицировал программу ROKKY. На диске имеются два файла:
оригинальная программа, ставшая ROKKY.CON, и вирус ROKKY.COM. Но что
помешает вирусу при следующем выполнении найти ROKKY.COM и заразить его
еще раз?
Если ROKKY.COM является скрытым (hidden), то поисковый механизм вируса
пропускает его (мы не требуем, чтобы он осматривал скрытые файлы). Это
предотвращает повторную инфекцию.
Вариации на заданную тему
Для написания компаньонских вирусов развито множество стратегий. Наш
CSpawn работает на принципе Virus Creation Lab (VCL) - популярной
программы, которая использует системные меню с вытеснением нижней строки
для автоматической генерации вирусов.
В вирусе CSpawn отсутствует маскировочный код, применяемый VCL. Но многие
другие возможности остались...
Первые компаньонские вирусы использовали несколько иной принцип. Когда
пользователь печатал имя программы в приглашении на ввод команды, DOS
искала сначала СОМ-программу, а затем ЕХЕ-программу.
Предыдущая << 1 .. 19 20 21 22 23 24 < 25 > 26 27 28 29 30 31 .. 123 >> Следующая