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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: NDIS + Hook_Device_Service - проблема. Не могу понять как...  (Прочитано 4430 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Delphist
Гость
« : 15-06-2004 04:10 » new

Доброго времени суток, уважаемый All
Пишу что-то типа файрвола под Win9x, нашел пример.
http://www.insafe.kubiks.ru/articles/connect/1/7.htm
Но он написан под VtoolsD. Я его перевожу под обычный DDK98. В чем затык: перевод из Hook_Device_Service_C в Hook_Device_Service

Вроде бы все очень просто, но... Чего-то не догоняю.
Напрмер, автор пишет
OldNdisSend = (POS_NDIS_SEND)Hook_Device_Service_C(__NdisSend, NH_NdisSend, &thunkNdisSendHook);

Вопрос №1, зачем тут thunk? Мы что, передаем управление в 16-битный код?

Вопрос №2, про __NdisSend. Как я понимаю, это ординал функции NdisSend, хук которой мы производим. Т. е. получится вот такой аналог
GetVxDServiceOrdinal eax, NdisSend ; без подчеркиваний!
mov     esi, OFFSET32 NH_NdisSend
VMMCall Hook_Device_Service

Все бы хорошо, но скомпилировать такой текст мне не дают Жаль
__NdisSend undeclared identificator
а тут с подчеркиваниями Жаль

Я на Гугле нашел такую замену для GetVxDServiceOrdinal:

#define Ndis_DEVICE_ID 0x28
#define SendSvcNo 45
#define NdisSendOrdinal ((Ndis_DEVICE_ID<<16) + SendSvcNo)

Но откуда узнать младшие слова остальных функций (прием, регистрация протокола и т.п.) для перехвата? В DDK их не вижу, кроме Ndis_DEVICE_ID.

Кто прояснит туман в моей непутевой голове? Драйвер пишу впервые, ногами не бить Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines