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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2 3 4 ... 8   Вниз
  Печать  
Автор Тема: NDIS InterMediate Driver - Обсуждение  (Прочитано 227518 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Kife
Помогающий

by
Offline Offline

« : 01-12-2005 08:50 » 

Гром, SlavaI : Предлагаю все вопросы по IM драйверу вести в этой теме. Новичкам удобнее искать будет, да и самим можно будет из темы оч. удобный FAQ сделать. А лучше, Гром, зафиксируй эту тему наверху, чтобы она вниз не сползала.
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Kife
Помогающий

by
Offline Offline

« Ответ #1 : 01-12-2005 08:54 » 

И так, предложения, комментарии!?
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
vers
Гость
« Ответ #2 : 11-12-2005 13:22 » 

наверное, самый глупый вопрос...
XPSP1 DDK, операционка WinXP SP2. Откомпилировал пример драйвера WINDDK\2600.1106\src\network\ndis\passthru в режиме WinXP Free Build Environment. Получил искомый файл passthru.sys. Приложил к нему два inf-файла, которые идут в комплекте. Собственно, вопрос: как его теперь установить в системе? Я так подозреваю, через "Установка оборудования", но какой тип устройства выбирать? При выборе типа "сетевые платы" драйвер не отображается в списке драйверов, найденных в текущей папке.
Записан
vers
Гость
« Ответ #3 : 11-12-2005 16:13 » 

Нашел методом тыка Улыбаюсь
Оказывается, его нужно установить как сетевую службу в свойствах сетевого адаптера.
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #4 : 13-12-2005 11:29 » 

Абсолютно верно
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
vers
Гость
« Ответ #5 : 13-12-2005 18:18 » 

А можно как-нибудь установить NDIS IM драйвер без сброса сетевых подключений и без вывода окошка о фатальной ошибке отсутствия цифровой подписи у драйвера?
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #6 : 13-12-2005 18:22 » 

помоему нет. можно только "не руками через inf-файл", а программно. Но окно с отсутствием ЦП все равно появится.
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #7 : 18-01-2006 14:14 » 

Как я понял можно просто написать NDIS IM и он будет перехватывать весь трафик ?
Но некоторые firewall'ы всё таки используют ещё и tdi.
« Последнее редактирование: 16-12-2007 13:39 от Алексей1153++ » Записан
Kife
Помогающий

by
Offline Offline

« Ответ #8 : 30-01-2006 09:00 » 

Потому что ИМХО(поправьте если ошибаюсь) из TDI можно еще и имя процесса получить, который данные отправляет/принимает.
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #9 : 31-01-2006 20:26 » 

Ещё один глупый вопрос.

А какие функции необходимо перехватыватьв NDIS и TDI?
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #10 : 02-02-2006 21:23 » 

см. пример PassThru из DDK. там в функции DriverEntry все перехватчики описаны.
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #11 : 02-02-2006 23:11 » 

Забыл...
Я только учусь...
А можно ли просто написать драйвер поверх TDI и всё перехватить?
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #12 : 06-02-2006 10:00 » 

а зачем ? наверно можно.....
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Rulik
Помогающий

ru
Offline Offline

« Ответ #13 : 08-02-2006 02:26 » 

Поддерживаю начинание. Хорошая тему. Буду учится. В свое время попробывал накатать простой фильт, который дропает пакеты. Ну так и не смог его скомпилить. (Времени небыло.) А так очень актуальная тема.
Записан
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #14 : 08-02-2006 13:33 » 

начинаю разбирать passthru.
Что собственно делает этот драйвер?
И что за дериктория notifyob?(при компиляции создаётся dll)
Записан
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #15 : 08-02-2006 14:57 » 

Диспетчер ввода/вывода общается с драйверами посредством IRP пакетов, значит в этом пакете и содержится отправляемая информация? Для фильтровки трафика нужно просто разобрать пакет и нужные пропускать?
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #16 : 08-02-2006 20:56 » 

Так! давай по-порядочку!

начинаю разбирать passthru.
Что собственно делает этот драйвер?
И что за дериктория notifyob?(при компиляции создаётся dll)

1. Passthru делает очень много на самом деле - он перехватывает пакет, пересобирает его и переотправляет.
2. notify -- забей и не трогай. Не надо  Какая-то dll для ..... я даже не знаю (не помню)  для чего она. Как-то по-моему, она взаимодействует с драйвером... а как - не помню. Короче для начала она тебе нафиг не нужна, все общение делай чарез IRP.
Диспетчер ввода/вывода общается с драйверами посредством IRP пакетов, значит в этом пакете и содержится отправляемая информация? Для фильтровки трафика нужно просто разобрать пакет и нужные пропускать?

1. Да, через irp.   Да-да Да, содержится.  Да-да Отправляешь данные в драйвер при помощи WINAPI DeviceIoControl(). Предварительно открываешь драйвер SCM-oм . О том, как реализовать в любом драйвере (например в том же passthru, помоему там нет) процедуру диспетчеризации IRP-пакетов, почитай в любую книгу по драйверам. Лично я рекоммендую книгу Солдатова - для новичка в самый раз, сжато, четко и понятно , да и с примерами.  И показано, как взаимодействовать с USER-mode приложениями.
2. Точнее будет сказать, что для фильтровки надо разобрать и нужные "отправить", а ненужные "не отправлять" Улыбаюсь
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Kife
Помогающий

by
Offline Offline

« Ответ #17 : 08-02-2006 21:00 » 

А может мне цикл статей написать по разработке IM-драйвера с модификацией пакетов и отбросом лишних..... ?  Скромно так...
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #18 : 09-02-2006 14:22 » 

Насчёт цикла это конечно хорошо. Обещаю читать. Улыбаюсь
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #19 : 10-02-2006 08:15 » 

Ну, это когда с работой полегче станет.... тогда сразу и начну... а то 25 лет уже почти, а ни одной публикации нет... стыдно как-то Улыбаюсь
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Rulik
Помогающий

ru
Offline Offline

« Ответ #20 : 10-02-2006 11:41 » 

2 Kife
Жду с нетерпением. Хотелось бы разложить обрывки информации в голове.
Записан
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #21 : 15-02-2006 08:56 » 

Пробел в понимании процесса.
Ну решило приложение отправить данные по сети, а собственно говоря что дальше?
Не могли бы объяснить как собирается пакет, как он проходит по драйверам?
Записан
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #22 : 16-02-2006 15:14 » 

объяснять не стоит сам нашёл
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #23 : 16-02-2006 16:59 » 

Улыбаюсь видишь как все просто Улыбаюсь
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
new_s
Постоялец

by
Offline Offline
Пол: Мужской

« Ответ #24 : 20-02-2006 09:57 » 

В passthru сначала происходит регистрация минипорта, а затем протокола. Минипорт регистрируется для передачи, как я понимаю. А зачем протокол? Объясните подробнее. И ещё.
NdisMInitializerWapper(&NdisWrapperHandle, DriverObject, RegistryPath, NULL);
NdisIMRegisterLayeredMiniport(NdisWrapperHandle,.....);
Читал DDK но до конца не разобрался.
Первая инициализирует минипорт, а вторая регистрирует.
А что значит в данном случае инициализация и регистрация?
Почему passthru не обрабатвает IRP?
switch (irpStack->MajorFunction)
   {
      case IRP_MJ_CREATE:
         break;
      case IRP_MJ_CLOSE:
         break;       
      case IRP_MJ_DEVICE_CONTROL:
         //
         // Add code here to handle ioctl commands sent to passthru.
         //
         break;       
      default:
         break;
   }
« Последнее редактирование: 20-02-2006 20:26 от new_s » Записан
NiR
Гость
« Ответ #25 : 20-02-2006 12:22 » 

Мне приходиться после каждого рестарта переинсталлировать passthru, иначе он не дает свой Handle, или это так и должно быть?
Делаю так:

1)OpenSCManager(...
2)CreateService(...
3)StartService(...
4)Handle=CreateFile(...
Записан
Kife
Помогающий

by
Offline Offline

« Ответ #26 : 21-02-2006 09:10 » 

должен давать
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Kife
Помогающий

by
Offline Offline

« Ответ #27 : 21-02-2006 09:10 » 

Мне приходиться после каждого рестарта переинсталлировать passthru, иначе он не дает свой Handle, или это так и должно быть?
Делаю так:

1)OpenSCManager(...
2)CreateService(...
3)StartService(...
4)Handle=CreateFile(...

это не правильно... старт точно не надо, потому что она уже запущена
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
Kife
Помогающий

by
Offline Offline

« Ответ #28 : 21-02-2006 09:11 » 

точнее скажу, когда домой доберусь
Записан

_______
Да поможет нам F1,  и да сохранит нас F2 ...
heptohedron2004
Гость
« Ответ #29 : 21-02-2006 09:49 » 

Народ плз помогите! Надо чтоб драйвер шифровал приходящую инфу из сети и дешифровал исходящую в сеть. Какой тип драйвера наиболее оптимально подходит под задачу ?
Записан
Страниц: [1] 2 3 4 ... 8   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines