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

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

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

« Ответ #60 : 02-03-2006 22:27 » 

самый большой недостаток этой темы отсуствие нормальных доков, на русском языке
Записан
StandAlone
Гость
« Ответ #61 : 03-03-2006 06:04 » 

"Как, считывая инфу из этих буфферов попорядку, определить". Проще всего, получив пакет, по полю TotalLength выделить буфер нужного размера, считать туда всю инфу из всех буферов, привести к структуре (*Ethernet_header)(Buffer)...Получаешь тип протокола верхнего уровня, и соответственно так же, по нужному оффсету приводишь к нужным структурам.
Записан
heptohedron2004
Гость
« Ответ #62 : 03-03-2006 06:15 » 

сорри немножко не понял  "...и соответственно так же, по нужному оффсету приводишь к нужным структурам."  так а по какому именно оффсету(как это узнать) привеодить?
Записан
heptohedron2004
Гость
« Ответ #63 : 03-03-2006 07:19 » 

http://www.computerbooks.ru/books/Programming/Book-Pogramming-Sistem-Security/Glava%204/Index21.htm - книжка электронная(мот уже постил кто тада сорри) - вроде ниче такая
Записан
heptohedron2004
Гость
« Ответ #64 : 03-03-2006 07:28 » 

че-та сення торможу енто вроде Сорокина сорри за ложную тревогу просто сильно обрадовался что нашел классную доку на русском языке
Записан
StandAlone
Гость
« Ответ #65 : 03-03-2006 12:49 » 

http://web.ur.ru/uar/pub/tcpip.pdf  -- качаешь мануал,  смотришь оффсеты и будет тебе щасте -) В NDIS IM пакет приходит полностью сформированный, и у него ВСЕГДА есть Ethernet заголовок, 14 байт как правило...а дальше уже проходишь по буферам, объединяешь все в один, и по вышележащим полям протоколов доступаешься. CRC пересчитывать нужно обязательно, при любой модификации пакета. Кстати, объединение в один буфер должно давать теоретический выигрыш в производительности сети... правда, я еще не замерял, насколько Улыбаюсь
« Последнее редактирование: 03-03-2006 12:52 от StandAlone » Записан
heptohedron2004
Гость
« Ответ #66 : 06-03-2006 06:34 » 

я наверное дебил(, но не понимаю хоть убей, откуда взять, как называется та или иная структура и как доступиться к ее полям
Записан
heptohedron2004
Гость
« Ответ #67 : 06-03-2006 08:42 » 

я в том смысле что не с головы же взялось то же Ethernet_header, ятак понимаю все остальное - тоже какие то структуры.И еще типа пакет у него например ведь может отсутсвовать какое то из полей.....Как я просто считывая, могу определить, что енто например уже данные начались,или к примеру их ваще нету(но этот вопрос возникает по причине незнания выше описанного)
Записан
heptohedron2004
Гость
« Ответ #68 : 06-03-2006 12:27 » 

И еще )Например, та же Сорокина пишет, пакет может иметь вид:
Ethernet|  IP | UDP | данные
Ethernet|  ARP   (к примеру)
Как узнать, что после Ethernet_Header? в самом Ethernet_Header про енто по идее ничего не говорится
Записан
StandAlone
Гость
« Ответ #69 : 07-03-2006 06:12 » 

http://www.ndis.com/papers/ndispacket/ndispacket1.htm
http://www.ndis.com/papers/ndispacket/ndispacket_decode.htm
"The 14 byte Ethernet Header includes three fields:
 MAC Destination Address (0-5, 6 bytes) - 00-A0-CC-63-08-1B
 MAC Source Address (6-11, 6 bytes) - 00-40-95-49-03-5F
 Ethernet Type Field (12-13, 2 bytes) - 0x0800 (IP Datagram)
"(с)перто оттуда. Перевести?Улыбаюсь Возможные Ethernet типы - значения >0x0600 -- найди в гугле самостоятельно, в качестве домашнего задания Улыбаюсь
Записан
heptohedron2004
Гость
« Ответ #70 : 07-03-2006 06:16 » 

да я не о том)(понимаю твой сорказм) само название структуры( Ethernet_Header) ее самому создавать а потом заполнять полями или оно стандартизировано для того же NDIS
Записан
heptohedron2004
Гость
« Ответ #71 : 07-03-2006 06:30 » 

кстати, считаю нужным извиниться что долбил мозг на счет того, что идет за езернет заголовком, просто не пральна понял описание "data type"
Записан
StandAlone
Гость
« Ответ #72 : 07-03-2006 06:37 » 

Хотя не...обманул я тебя, и сам обманулся -- по мануалу... вот, короче: http://pagonline.kiev.ua/docs/www.techbooksforfree.com/intro_to_data_com/app-c.html
Значения <0x0600 используются ieee 802.3 q - протоколом управления каналами LLC.
http://www.kuzbass.ru/docs/stevens/pdf/stevens_tcpip.pdf - вот здесь еще глянь, главу Demultiplexing.
Записан
heptohedron2004
Гость
« Ответ #73 : 10-03-2006 06:10 » 

Народ, плз, скажите Ethernet_header - сам тип(структура) который уже существует, тада где можно найти все остальные или его надо создавать самому?
Записан
heptohedron2004
Гость
« Ответ #74 : 15-03-2006 07:56 » 

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

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

« Ответ #75 : 15-03-2006 21:55 » 

прошу прощения что е..л мозг вроде разобрался.Но есть еще вопрос.
делаешь Lib, компилишь его для режима ядра, прилинковываешь к драйверу и вперед! -  расскажите кто, это как ?
Не расскажешь как разабрался?
Записан
heptohedron2004
Гость
« Ответ #76 : 16-03-2006 06:35 » 

ну разбирал пакет и, как говорил выше человек по смещению в соответствие с мануалом смотрел например какого вида протокола  пришел пакет тока вот не понял одной темы(в этом заключается еще один вопрос): например пришел IP пакет мы выделили в нем заголовок знаем откуда начинаются данные. CRC в заголовке расчитывается только для заголовка но мы его не трогаем мы меняем поле ДАННЫЕ. Где  находится сгс который надо всегда пересчитывать когда меняем данные. И какой тада надо брать полином чтоб его пересчитать или мот есть ф-я которая это делает ?
Записан
new_s
Постоялец

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

« Ответ #77 : 16-03-2006 07:18 » 

это что надо таблицу составлять?
Ну смещение-протокол.
Записан
heptohedron2004
Гость
« Ответ #78 : 16-03-2006 07:32 » 

мне енто без надобности ибо меня интересует тока один вид протокола еси это он то я че то делаю если нет ниче не делаю
Записан
new_s
Постоялец

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

« Ответ #79 : 16-03-2006 13:07 » 

мне енто без надобности ибо меня интересует тока один вид протокола еси это он то я че то делаю если нет ниче не делаю
Посоветовал бы хоть.
У меня интерес вызывает фильтрация всего трафика.
Записан
heptohedron2004
Гость
« Ответ #80 : 17-03-2006 06:12 » 

Извини это у "пап" надо спрашивать, я не шарю.
Записан
new_s
Постоялец

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

« Ответ #81 : 17-03-2006 08:41 » 

"Папы" обещали доков подкинуть буду ждать.
Улыбаюсь
Записан
heptohedron2004
Гость
« Ответ #82 : 17-03-2006 08:58 » 

О, будут доки делись - не скромничай))
Записан
heptohedron2004
Гость
« Ответ #83 : 27-03-2006 12:23 » 

Народ плз как срс пересчитать и де он находится ?
Записан
diMAN
Гость
« Ответ #84 : 28-03-2006 11:39 » 

Каким образом можно узнать что приложение открыло сокет? Что-то типа hook на открытие сокета в системе.
Записан
heptohedron2004
Гость
« Ответ #85 : 30-03-2006 07:03 » 

Я наверное всех зае..л, но: везде, где не смотрю в структуре ндис пакета есть езернет заголовок который содержит адрес отправителя......и т.д., но про срс ваще не слова. В нтддк есть структура _NDIS_TCP_IP_CHECKSUM_PACKET_INFO
- это то ?(спрашиваю, чтобы не копать лишнюю инфу так как времени не хватает), если кто-нибудь знает что нить про срс который надо пересчитывать(и надо ли его пересчитывать) если я меняю данные, которые являются данными для айпи протокола, откликнитесь!!! пожалуйста.
Записан
heptohedron2004
Гость
« Ответ #86 : 30-03-2006 07:39 » 

Просто объяснить, что хочу сделать. Просматриваю пакет(как, вроде знаю), смотрю в езернет заголовке тип протокола, если енто айпи там идет айпи заголовок потом поле ДАННЫЕ.Пропускаю айпизаголовок(там есть срс, но помануалу - это срс чисто заголовка). Например,каким то образом меняю поле  ДАННЫЕ, но не меняю его длину, где срс, которое надо пересчитывать ?
Записан
diMAN
Гость
« Ответ #87 : 30-03-2006 09:32 » 

Просто объяснить, что хочу сделать. Просматриваю пакет(как, вроде знаю), смотрю в езернет заголовке тип протокола, если енто айпи там идет айпи заголовок потом поле ДАННЫЕ.Пропускаю айпизаголовок(там есть срс, но помануалу - это срс чисто заголовка). Например,каким то образом меняю поле  ДАННЫЕ, но не меняю его длину, где срс, которое надо пересчитывать ?

В ip-заголовке содержится CheckSum именно ip-заголовка, а далее ты смотришь на ДАННЫЕ, которые в свою очередь могут быть TCP, UDP, ICMP или другим протоколом. Соответственно у них будут СВОИ CheckSum, которые вычисляются согласно RFC. Их нужно тоже вычислять заново, если ты правишь ДАННЫЕ.
Кстати как ты простатриваешь пакеты?
Записан
heptohedron2004
Гость
« Ответ #88 : 30-03-2006 10:19 » 

 или ты не понял что я спрашиваю или я херово объясняю чего хочу но то что ты сказал и так понятно. я пытаюсь узнать про срс (если он есть в пакете поступающем в им драйвер, а еси нету так ваще проще все) который расчитывается для езернета, а не для какого-то конкретного протокола,  может я че и напутал, не судите строго....
Записан
diMAN
Гость
« Ответ #89 : 30-03-2006 11:27 » 

Про NDIS_TCP_IP_CHECKSUM_PACKET_INFO можешь прочитать здесь http://www.osronline.com/ddkx/network/105nstru_3i7m.htm, как я понял что эта структура - часть информации передаваемой вместе с пакетом, и содержащаяся в ней информация служит для того, чтобы сказать NIC что нужно посчитать соответствующие CheckSum. Соответственно по ней можно судить есть ли уже CheckSum в пакете или её нужно рассчитывать, но рассчитывать в любом случае не тебе, а NIC.
Записан
Страниц: 1 2 [3] 4 5 6 ... 8   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines