перехват прерывания
Модератор: Andy
Не подскажите, как сделать, чтоб резидентная программа хватала прерывание "09H (клавиатура)" и по ctrl+d уходила бы по метке?
В двух словах.
1. Перехватываешь 9-й инт.
- читаешь адрес текущего 9-го инта,
- сохраняешь его,
- запрещаешь прерывания и записываешь адрес своего обработчика,
- оставляешь резидентный код в памяти, разрешаешь прерывания.
2. Обработчик 9-го инта
- сохраняешь ВСЕ!!! (хотябы регистры)
- читаешь скан-код,
- если это "ctrl-d" - делаешь свои темные дела,
- восстанавливаешь ВСЕ,
- кладешь в стек сохраненный адрес родного обработчика,
- делаешь iret - передаешь ему управление.
Вот примерно так. Может что и забыл.
1. Перехватываешь 9-й инт.
- читаешь адрес текущего 9-го инта,
- сохраняешь его,
- запрещаешь прерывания и записываешь адрес своего обработчика,
- оставляешь резидентный код в памяти, разрешаешь прерывания.
2. Обработчик 9-го инта
- сохраняешь ВСЕ!!! (хотябы регистры)
- читаешь скан-код,
- если это "ctrl-d" - делаешь свои темные дела,
- восстанавливаешь ВСЕ,
- кладешь в стек сохраненный адрес родного обработчика,
- делаешь iret - передаешь ему управление.
Вот примерно так. Может что и забыл.
а можно какойнить пример посмотреть?
Вот пособие по резидентам и не только 
http://www.ishodniki.ru/base/ASM/virus.zip
Просьба не увлекаться.

http://www.ishodniki.ru/base/ASM/virus.zip
Просьба не увлекаться.
хехе))
пасиба, интересно поглядеть
пасиба, интересно поглядеть