Перехват обращений к порту ввода-вывода

Тема в разделе "WASM.WIN32", создана пользователем Diam, 28 фев 2009.

  1. Diam

    Diam New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2006
    Сообщения:
    4
    Здравствуйте,
    Я бы хотел узнать, где можно почитать про перехват обращений к порту ввода-вывода (через инструкции in/out)? На любом языке, интересуют техника и способы. ОС - Win98/XP/Vista
    Спасибо.
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Hardware breakpoint. DrX.
     
  3. Diam

    Diam New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2006
    Сообщения:
    4
    Почитал про регистры Dr*, но там линейные адреса... А порт как отловить?
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Адрес порта в Dr0%Dr3, в Dr7 для необходимой точки останова тип IO и размер выводимого в порт значения, её нужно включить. Если это в ядре юзоться будет, то после смены dpl нужно перезагружать отладочные регистры в контексте.
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Пример. Событие при останове должно определяться по содержимому регистра Dr6. Напрямую они конечноже не юзоются, а используется хитрая манипуляция с контекстом.