Kife
Помогающий
Offline
|
|
« : 01-12-2005 08:50 » |
|
Гром, SlavaI : Предлагаю все вопросы по IM драйверу вести в этой теме. Новичкам удобнее искать будет, да и самим можно будет из темы оч. удобный FAQ сделать. А лучше, Гром, зафиксируй эту тему наверху, чтобы она вниз не сползала.
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
Kife
Помогающий
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
Помогающий
Offline
|
|
« Ответ #4 : 13-12-2005 11:29 » |
|
Абсолютно верно
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
vers
Гость
|
|
« Ответ #5 : 13-12-2005 18:18 » |
|
А можно как-нибудь установить NDIS IM драйвер без сброса сетевых подключений и без вывода окошка о фатальной ошибке отсутствия цифровой подписи у драйвера?
|
|
|
Записан
|
|
|
|
Kife
Помогающий
Offline
|
|
« Ответ #6 : 13-12-2005 18:22 » |
|
помоему нет. можно только "не руками через inf-файл", а программно. Но окно с отсутствием ЦП все равно появится.
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
new_s
|
|
« Ответ #7 : 18-01-2006 14:14 » |
|
Как я понял можно просто написать NDIS IM и он будет перехватывать весь трафик ? Но некоторые firewall'ы всё таки используют ещё и tdi.
|
|
« Последнее редактирование: 16-12-2007 13:39 от Алексей1153++ »
|
Записан
|
|
|
|
Kife
Помогающий
Offline
|
|
« Ответ #8 : 30-01-2006 09:00 » |
|
Потому что ИМХО(поправьте если ошибаюсь) из TDI можно еще и имя процесса получить, который данные отправляет/принимает.
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
new_s
|
|
« Ответ #9 : 31-01-2006 20:26 » |
|
Ещё один глупый вопрос.
А какие функции необходимо перехватыватьв NDIS и TDI?
|
|
|
Записан
|
|
|
|
Kife
Помогающий
Offline
|
|
« Ответ #10 : 02-02-2006 21:23 » |
|
см. пример PassThru из DDK. там в функции DriverEntry все перехватчики описаны.
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
new_s
|
|
« Ответ #11 : 02-02-2006 23:11 » |
|
Забыл... Я только учусь... А можно ли просто написать драйвер поверх TDI и всё перехватить?
|
|
|
Записан
|
|
|
|
Kife
Помогающий
Offline
|
|
« Ответ #12 : 06-02-2006 10:00 » |
|
а зачем ? наверно можно.....
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
Rulik
Помогающий
Offline
|
|
« Ответ #13 : 08-02-2006 02:26 » |
|
Поддерживаю начинание. Хорошая тему. Буду учится. В свое время попробывал накатать простой фильт, который дропает пакеты. Ну так и не смог его скомпилить. (Времени небыло.) А так очень актуальная тема.
|
|
|
Записан
|
|
|
|
new_s
|
|
« Ответ #14 : 08-02-2006 13:33 » |
|
начинаю разбирать passthru. Что собственно делает этот драйвер? И что за дериктория notifyob?(при компиляции создаётся dll)
|
|
|
Записан
|
|
|
|
new_s
|
|
« Ответ #15 : 08-02-2006 14:57 » |
|
Диспетчер ввода/вывода общается с драйверами посредством IRP пакетов, значит в этом пакете и содержится отправляемая информация? Для фильтровки трафика нужно просто разобрать пакет и нужные пропускать?
|
|
|
Записан
|
|
|
|
Kife
Помогающий
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
Помогающий
Offline
|
|
« Ответ #17 : 08-02-2006 21:00 » |
|
А может мне цикл статей написать по разработке IM-драйвера с модификацией пакетов и отбросом лишних..... ?
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
new_s
|
|
« Ответ #18 : 09-02-2006 14:22 » |
|
Насчёт цикла это конечно хорошо. Обещаю читать.
|
|
|
Записан
|
|
|
|
Kife
Помогающий
Offline
|
|
« Ответ #19 : 10-02-2006 08:15 » |
|
Ну, это когда с работой полегче станет.... тогда сразу и начну... а то 25 лет уже почти, а ни одной публикации нет... стыдно как-то
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
Rulik
Помогающий
Offline
|
|
« Ответ #20 : 10-02-2006 11:41 » |
|
2 Kife Жду с нетерпением. Хотелось бы разложить обрывки информации в голове.
|
|
|
Записан
|
|
|
|
new_s
|
|
« Ответ #21 : 15-02-2006 08:56 » |
|
Пробел в понимании процесса. Ну решило приложение отправить данные по сети, а собственно говоря что дальше? Не могли бы объяснить как собирается пакет, как он проходит по драйверам?
|
|
|
Записан
|
|
|
|
new_s
|
|
« Ответ #22 : 16-02-2006 15:14 » |
|
объяснять не стоит сам нашёл
|
|
|
Записан
|
|
|
|
Kife
Помогающий
Offline
|
|
« Ответ #23 : 16-02-2006 16:59 » |
|
видишь как все просто
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
new_s
|
|
« Ответ #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
Помогающий
Offline
|
|
« Ответ #26 : 21-02-2006 09:10 » |
|
должен давать
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
Kife
Помогающий
Offline
|
|
« Ответ #27 : 21-02-2006 09:10 » |
|
Мне приходиться после каждого рестарта переинсталлировать passthru, иначе он не дает свой Handle, или это так и должно быть? Делаю так:
1)OpenSCManager(... 2)CreateService(... 3)StartService(... 4)Handle=CreateFile(...
это не правильно... старт точно не надо, потому что она уже запущена
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
Kife
Помогающий
Offline
|
|
« Ответ #28 : 21-02-2006 09:11 » |
|
точнее скажу, когда домой доберусь
|
|
|
Записан
|
_______ Да поможет нам F1, и да сохранит нас F2 ...
|
|
|
heptohedron2004
Гость
|
|
« Ответ #29 : 21-02-2006 09:49 » |
|
Народ плз помогите! Надо чтоб драйвер шифровал приходящую инфу из сети и дешифровал исходящую в сеть. Какой тип драйвера наиболее оптимально подходит под задачу ?
|
|
|
Записан
|
|
|
|
|