Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых)

 eXeL@B —› Программирование —› Получить порт из IP-пакета
Посл.ответ Сообщение

Ранг: 7.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 декабря 2016 01:54
· Личное сообщение · #1

Мне нужно написать анализатор IP-пакетов с несложной фильтрацией по IP и порту. Сейчас у меня готова программа, перехватывающая IP-пакеты, но в них не содержится порт: это уже часть протокола TCP или UDP.

Каким образом мне добраться до порта? В хекс-дампе вижу HTTP-хедеры и другой мусор. Это тоже будет использоваться при фильтрации, но сейчас мне важнее определить ip:port.

Пишу на винсокетах.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 декабря 2016 02:41
· Личное сообщение · #2

равсокеты что ли ?
ну опиши стурктуру айпи пакета + удп, кастишь свой пакет в структуру и из структуры по полям забираешь свои айпи + порт
хост ендиан только учесть надо

https://en.wikipedia.org/wiki/User_Datagram_Protocol



Ранг: 7.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 декабря 2016 03:00
· Личное сообщение · #3

Вроде, получается. Смысл всего этого - фильтрация пакетов. Видимо, нужно предусмотреть возможность доставки только разрешенных пакетов. Как реализовать эту доставку или отклонение после того, как пакер проанализирован?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 декабря 2016 03:05
· Личное сообщение · #4

я хз вообще зачем это
если для винды то там какой то механизм фаервола был для доступа с юзер левела
и можно было поставить хук процедуру в винде, которая вызывалась и по ее результатам можно было мочить пакет или пропускать
хз, погуглите я уже забыл, может уже в современных виндах и отключили эту фишку

Добавлено спустя 41 минуту
https://msdn.microsoft.com/windows/hardware/drivers/network/porting-packet-processing-drivers-and-apps-to-wfp
https://msdn.microsoft.com/en-us/library/aa366510(v=vs.85).aspx



Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 03 декабря 2016 04:10
· Личное сообщение · #5

ZeroMemory пишет:
Смысл всего этого - фильтрация пакетов.

http://www.winpcap.org/



Ранг: 7.5 (гость), 1thx
Активность: 0.010
Статус: Участник

Создано: 03 декабря 2016 13:12
· Личное сообщение · #6

Zorn пишет:
http://www.winpcap.org/

Я не для себя пишу. Мне нужно сделать простой сетевой экран.



Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 09 декабря 2016 04:14
· Личное сообщение · #7

И в чем проблема ? Нельзя поставит winpcap, но вашу программу можно ?




Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 09 декабря 2016 23:19
· Личное сообщение · #8

ZeroMemory
Порт содержится не в ip-пакете, а повыше уровнем - а в заголовке tcp или udp. Странный такой вопрос, поснифали бы что-нибудь WireShark'ом - знали бы уже, где порт.

-----
IZ.RU




Ранг: 3.1 (гость), 4thx
Активность: 0=0
Статус: Участник

Создано: 18 декабря 2016 19:11 · Поправил: LoDS
· Личное сообщение · #9

пипец.... человек пишет сетевой экран.... пи***ц.. Человек, я тебе рекомендую разобраться для начала с моделью OSI, потом разобраться с основами сетевого взаимодействия, потом с написанием драйверов. Ивот только после этого садиться писать код. Я прям предвещаю следующий вопрос в теме: -как дропать пакеты?...


 eXeL@B —› Программирование —› Получить порт из IP-пакета
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати