Сейчас на форуме: (+7 невидимых)

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

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

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

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



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

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

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



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

Создано: 14 февраля 2005 18:41
· Личное сообщение · #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 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

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

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

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



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

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

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



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

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

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



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

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

в винде (2003)



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

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

Гугли "драйвер", "IDT", "ISR"...


 eXeL@B —› Крэки, обсуждения —› перехват прерываний
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати