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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Модификация NDIS пакета помоготе!!! Тону!!!  (Прочитано 5005 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
pit_c4
Гость
« : 12-06-2009 09:09 » 

Добрового времени суток
У меня серьезная проблема, пишу диплом по защите информации. Специальность наша полное фуфло. Преподов, которые хотябы умели нормально программировать, просто нет. Консультант по дипломному проекту тоже в драйверах "ни хрю, ни му". А время поджимает, до защиты осталось 2 недели.


Разрабатываю драйвер шифрования сетевого трафика ,на основе Passthru из DDK. Функцию шифрования исходящего IP пакета решил поместить в MPSendPacket. Для чтения данных из NDIS пакета, есть готовая функция   
FltReadOnPacket(
   IN PNDIS_PACKET Packet,  //Пакет из которого читаем данные
   IN PVOID lpBufferIn,     //Указатель на буффер
   IN ULONG nNumberOfBytesToRead, //Число байт, которое нужно прочитать
   IN ULONG nOffset,                // Смещение, начиная с Мак Адреса
   OUT PULONG lpNumberOfBytesRead   // Число реально прочитанных байт

Первый вопрос: Переменную какого типа использовать для буффера? Если нужно прочитать в него весь пакет (включая Ethernet заголовок), а пакеты могут быть разной длины?

Второй вопрос: Как узнать длину пакета который нужно прочитать в буффер?
Записан
Ochkarik
Модератор

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

« Ответ #1 : 15-06-2009 10:02 » 

ну вопервых поиск рулит.
https://forum.shelek.ru/index.php/topic,3370.0.html
http://www.wd-3.com/downloads/PassThru2.zip
http://www.wd-3.com/downloads/PassThru3.zip

Посмотри исходники, они просты, на том же сайте и статьи к ним, это расширение примера, с которого ты начал (ДДК).
По шифрованию Гром прав - трудно тебе будет с пакетами. Если это действительно курсач, то вставь чего попроще (XOR, а ключ передавай драйверу через IOCTL)

так же полезно полистать:
https://forum.shelek.ru/index.php/topic,7748.0.html
https://forum.shelek.ru/index.php/topic,499.0.html

теперь по сути вопроса:
1. тип PNDIS_PACKET. насчет размера буфера- там наверняка есть ограничение по максимальной длинне пакета. посмотри в оригинале того кто написал эту функцию.
2. второй вопрос - видимо lpNumberOfBytesRead?)))
и наконец пример использования
http://read.pudn.com/downloads64/sourcecode/internet/telnet/client/230379/UoBWinAODV-0.15/Driver/filter.c__.htm
целиком код примера откуда выдернута эта функция FltReadOnPacket() видимо:
UoBWinAODV-0.15 на http://www.pudn.com/downloads64/sourcecode/internet/telnet/client/detail230379.html
(там хоть на китайском но ссылки на файлы проекта внизу видно)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines