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

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

ru
Offline Offline

« : 07-06-2007 20:00 » 

Прочитав на сайте статью Грома решил написать свой NDIS драйвер.. Нужно все входящие/исходящие пакеты сохранять в файл.. У меня возникло несколько вопросов.. В статье разобраны функции MPSend минипорта и PtReceive протокола, которые я как понимаю копируют пакет для работы с ним.. А вот что делать с остальными функциями, такими как MPInitialize, MPQueryInformation, MPSetInformation и др. из минипорта и PtOpenAdapterComplete, PtCloseAdapterComplete, PtSendComplete и др. из протокола? Нужно ли их вообще прописывать в структурах MChars и PChars в DriverEntry? Или можно заместо них указать просто NULL? Или они все же нужны, а их можно просто скопировать из примера в DDK passthru?

Цитата
Нужно все входящие/исходящие пакеты сохранять в файл..
Как лучше сохранять пакеты в файл? Непосредственно в самом драйвере функцией ZwWriteFile или передавать сохраняемую информацию в программу, чтобы уже она сохраняла?
Записан
lexer666
Гость
« Ответ #1 : 08-06-2007 10:19 » 

Цитата
А вот что делать с остальными функциями, такими как MPInitialize, MPQueryInformation, MPSetInformation и др. из минипорта и PtOpenAdapterComplete, PtCloseAdapterComplete, PtSendComplete и др. из протокола? Нужно ли их вообще прописывать в структурах MChars и PChars в DriverEntry? Или можно заместо них указать просто NULL? Или они все же нужны, а их можно просто скопировать из примера в DDK passthru?
За основу бери passthru из DDK.
Цитата
Как лучше сохранять пакеты в файл? Непосредственно в самом драйвере функцией ZwWriteFile или передавать сохраняемую информацию в программу, чтобы уже она сохраняла?
Непосредственно писать в файл во время отправки/приема пакета не получится,если есть возможность передавай пакеты в юзерлендскую программу.

Поищи инфу тут:

www.ndis.com
www.pcausa.com
www.ntkernel.com

DDK Documentation
Использование MS Windows Driver Model
Программирование драйверов и систем безопасности. Учебное пособие
Руткиты. Внедрение в ядро
« Последнее редактирование: 08-06-2007 10:23 от lexer666 » Записан
Dmitry_177
Участник

ru
Offline Offline

« Ответ #2 : 08-06-2007 15:39 » 

За основу бери passthru из DDK.
Пример Грома какраз и построен на passthru.. У меня вопрос заключался немного в другом, можно ли те функции которые мне не нужны занулить, т.е. например:

Код:
MChars.ResetHandler = NULL;
MChars.TransferDataHandler = NULL;
...

PChars.StatusCompleteHandler = NULL;
PChars.BindAdapterHandler = NULL;

Т.е. все кроме тех которые мне нужны, а их всего-то две: MPSend, PtReceive..

Если нельзя их занулять то можно просто тупо скопировать их из passthru или как?
Записан
aks68
Модератор

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

« Ответ #3 : 09-06-2007 19:15 » new

Добрый день!

Как в протоколе так и в минипорте (а IM комбинирует их обоих) имеются обязательные и необязательные ф-ции. Если ф-я обязательная, то это оговаривается в DDK. Так-что стоит сверяться там.
Passthru регистрирует минимально необходимый набор ф-ций обратного вызова (callback) но при этом даже не все эти ф-и наполняет реальным кодом. Например PtReset если неошибаюсь просто возвращает 0.

Так что Вам имеет смысл взять за основу passthru.

С уважением,
Акс.

PS: Это только в начале кажется, что нужны лишь Send и Recieve. В дальнейшем, с усложнением функциональности Вашего драйвера, скорее всего Вам понадобяться и остальные  Ага
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines