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

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

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

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

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

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

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

поэтому мы разберем ее где-нибудь в последующих томах нашей "Азбуки".
64
ГЛАВА 2. Самовоспроизводство
В конечном счете, чтобы вызвать функцию Search First, мы должны
установить ah - 4Е Hex.
Итак, входные данные:
ah :4eh сх: атрибуты файла dx: офсет адреса файлового имени ds: сегмент
адреса файлового имени
Исходный код данной операции:
mov ah,4eh ;служба 'Find first', xor cx.cx ;ищвм нормальные атрибуты, lea
dx,com_files ;нам нужен .COM-файл!
int 21 h
Мы определяем значение com_files следующим образом: com_flles: db
"\com",0
Если функция "search first" выполнена успешно, она установит регистр а1 -
0 и таким образом отформатирует 43 байта данных в DTA (Disk Transfer Area
- область обменов с диском). Эти данные помогут программе провести поиски
по имени файла, по атрибутам, размеру и дате создания.
Некоторые данные, заложенные в DTA, используются DOS для выполнения
функции Search Next. Если при поиске не найден соответствующий файл, DOS
возвращает а1 неравным нулю, без данных в DTA.
Так как вызывающей программе известен адрес DTA, она может проверить эту
область и использовать файловую информацию после того, как DOS сохранит
ее там. Когда любая программа стартует, DTA по умолчанию располагается в
офсете 80Н префикса программного сегмента (PSP).
Позже программа может переместить DTA в другое место по просьбе DOS. Мы
рассмотрим эту возможность в процессе изучения, но пока DTA будет
работать с настройкой по умолчанию.
65
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
По сравнению с функцией Search First, функция Search Next более легкая,
потому что все данные уже были установлены функцией Search First. Просто
назначим ah = 4F hex и вызовем DOS-прерывание int 21Н:
mov ah,4fh '.служба "Search Next"
jmp find ; перейти к подпрограмме поиска
int 21 h ;вызов DOS
Если другой файл найден, данные в DTA будут обновлены именем очередного
файла, а регистр ah будет установлен в ноль на возврат. Если других
соответствий не найдено, DOS возвращает ah с иным (не нулевым) значением.
Здесь следует соблюдать осторожность, потому что данные в DTA не должны
изменяться между вызовом к Search First и последними вызовами к Search
Next, так как Search Next ожидает данные от вызова последнего поиска.
Механизм воспроизводства
Теперь-покопаемся в механизме воспроизводства. Чтобы создать свою копию,
вирус просто открывает программу-жертву в режиме записи (так же, как
обычная программа открывает файл данных), затем записывает свою копию в
этот файл и закрывает его. Открытие и закрытие являются важными частями
записи файла. Факт открытия файла равнозначен разрешению DOS на доступ к
данному файлу.
Когда DOS дает "добро" вашей программе, она подтверждает, что вы имеете
ресурсы для доступа к этому файлу, что такой файл существует в ожидаемой
форме и т. д. Закрытие файла указывает DOS закончить работу с файлом,
удалить весь обмен данных из буферов памяти и поместить файл на диск.
Чтобы открыть программу-жертву, мы используем функцию 3D Hex DOS-
прерывания 21Н. Права доступа в регистре а1 определяются как 2 для
доступа "чтение и запись".
66
ГЛАВА 2. Самовоспроизводство
Пара ds:dx должна указывать на имя файла, которое уже установлено в DTA с
помощью функции поиска - 9ЕН.
Код для открытия файла будет следующим: mov ax,3d02h mov dx,9eh int 21 h
Если DOS удалось открыть файл, она вернет дескриптор файла в регистр ах.
Этот дескриптор файла является просто 16-битным числом, которое
однозначно ссылается на только что открытый файл.
Так как все другие вызовы DOS на манипуляции с файлом требуют этот
дескриптор и ожидают найти его в регистре Ьх, вирус передает туда
дескриптор сразу же, как файл открывается. Данное действие выполняется с
помощью инструкции xchg Ьх, ах.
Далее вирус записывает свою копию в программный файл жертвы, используя
функцию 40Н прерывания 21Н. Для этого пара ds:dx должна указывать на
данные, которые будут записываться в файл, то есть на сам вирус,
расположенный ds:100H (ds уже была установлена, когда DOS загружала СОМ-
программу).
С этого момента вирус ведет себя как обычные данные, записываемые в файл.
Чтобы вызвать функцию 40Н, сх настраивается на число байтов, которые
будут писаться на диск (в нашем случае это разность между офсетом конца
вируса и офсетом начала вируса).
Регистр dx указывает на данные для записи (вирус), а Ьх содержит
дескриптор файла:
67
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
xchg bx.ax устанавливаем дескриптор файла в Ьх
mov ah,40h ;записываем вирус
mov сх,OFFSET vend-OFFSET vstart .байты для записи lea dx.vstart
;зафужаем эффективный адрес
int 21 h ;выполняем
Наконец, чтобы закрыть файл жертвы, вирус использует функцию ЗЕН с
дескриптором файла, вновь помещенным в Ьх.
Более сложный вариант переписывающего вируса
Конечно, вирус Toad имеет массу недостатков. Во-первых, он разрушает все,
к чему прикасается. Стоит пользователю один раз запустить его в действие,
и он уже будет знать, что система "подхватила" вирус. В ответ
Предыдущая << 1 .. 16 17 18 19 20 21 < 22 > 23 24 25 26 27 28 .. 123 >> Следующая