Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Крэки, обсуждения —› перехват прерываний
Посл.ответ Сообщение

Ранг: 21.5 (новичок)
Статус: Участник

Создано: 14 февраля 2005 15:25 New!
Цитата · Личное сообщение · #1

нужно перехватить прерывание 0х40
как это сделать?

Ранг: 352.4 (мудрец)
Статус: Участник
retired

Создано: 14 февраля 2005 16:15 New!
Цитата · Личное сообщение · #2

где?
в виндах, в досе?

Ранг: 186.8 (ветеран)
Статус: Участник

Создано: 14 февраля 2005 18:41 New!
Цитата · Личное сообщение · #3

int 40h в досе - это че то для работы с дисками... Все тупо... получаешь таблицу векторов прерываний через че-то типа
mov ah,35h
mov al,40h
int 21h
mov ds:[oldseg40],es
mov ds:[oldoffs40],bx
По адресу es:bx - адрес обработчика прерывания (сегмент и смещение). Или же, если нет извратов со всякими менеджерами верхней памяти и прочей мурой - нужный тебе вектор прерывания X находится по адресу 0000:X*4, т.е. в твоем случае - 0000:0100h. Сохраняй адрес оригинального обработчика, пиши свои координнаты и в путь

Ранг: 352.4 (мудрец)
Статус: Участник
retired

Создано: 14 февраля 2005 19:00 New!
Цитата · Личное сообщение · #4

MoonShiner пишет:
Или же, если нет извратов со всякими менеджерами верхней памяти и прочей мурой - нужный тебе вектор прерывания X находится по адресу 0000:X*4, т.е. в твоем случае - 0000:0100h. Сохраняй адрес оригинального обработчика, пиши свои координнаты и в путь

а разве менеджеры памяти как-то влияют на расположение векторов прерываний?

Ранг: 186.8 (ветеран)
Статус: Участник

Создано: 14 февраля 2005 19:11 New!
Цитата · Личное сообщение · #5

Плохо помню, давно все это было, но вроде с какими-то QEMM (могу соврать) у меня была трабла, что таблица векторов прерываний располагалась не по своему нормальному адресу, а в расширенной области... Боялся наврать, потому и сделал оговорку.

Ранг: 45.7 (посетитель)
Статус: Участник
EBFE

Создано: 14 февраля 2005 19:34 New!
Цитата · Личное сообщение · #6

MoonShiner
угу, можно было при использовании защищенного режима перенести таблицу в любое место, а старую 0:0 хоть затереть

Ранг: 21.5 (новичок)
Статус: Участник

Создано: 15 февраля 2005 07:42 New!
Цитата · Личное сообщение · #7

в винде (2003)

Ранг: 186.8 (ветеран)
Статус: Участник

Создано: 15 февраля 2005 11:27 · Поправил: MoonShiner New!
Цитата · Личное сообщение · #8

Гугли "драйвер", "IDT", "ISR"...
 eXeL@B —› Крэки, обсуждения —› перехват прерываний

Видеокурс ВЗЛОМ