Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Hook-и на порты  (Прочитано 4797 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Geracle
Гость
« : 13-09-2005 17:00 » 

Здравствуйте...

Под Win98 есть VMM-функции Install_IO_Handler, Simulate_IO и т.д.
Под WinNT есть VDD-функции VDDInstallIoHook и пр.

Предназначены они для перехвата данных, посылаемых в порт. Я беру 0x240 порт ISA и эти данные перенаправляю в куда надо Улыбаюсь  и пользую программкой SDConfig или Composer.

Проблема возникает в NT, т.к. VDD работает в VDM, т.е. если система видит 16 разрядное приложение, она загружает виртуальную dos машину и в её пространстве устанавливает ловушки на порты. Но мой composer 32-разрядный... Существует ли ещё способ поставить ловушки на порты в WinNT? Хотябы подскажите где копать  Ага
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #1 : 17-09-2005 13:17 » 

 Думаю нет, напиши более высокоуровневый фильтр-драйвер, не привязанный к портам, а ловящий данные и изменяющий их. Вариант - заинвалидейтить этот диапазон для процессора и хукнуть обработчик ошибок, где восстанавливать разрешение, а потом скидывать опять, я не рассматориваю- очевидны проблемы с синхронизацией и вобще сильно низкоуровнево и недокументированно.
Записан
Geracle
Гость
« Ответ #2 : 27-09-2005 17:28 » new

Я, так понимаю, прога по нажатию кнопки начинает посылать свои данные в устройство и принимать ответ. Скорее всего это инструкции out и in. Теоретически я могу из пользовательского режима отловить нажатие нужной кнопки (узнать её HANDLE и отловить сообщение). Но это черезчур глобально!!!

Что именно ловить этим фильтр-драйвером?
Подкиньте идею...

> Вариант - заинвалидейтить этот диапазон для процессора
> и хукнуть обработчик ошибок...

Ого   Круто!   А как это провенуть???
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines