Русский / Russian English / Английский

Сейчас на форуме: Lambda (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

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

Ранг: 7.5 (гость)
Статус: Участник

Создано: 3 декабря 2016 01:54 New!
Цитата · Личное сообщение · #1

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

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

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


Ранг: 1024.6 (!!!!)
Статус: Участник

Создано: 3 декабря 2016 02:41 New!
Цитата · Личное сообщение · #2

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

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

Ранг: 7.5 (гость)
Статус: Участник

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

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


Ранг: 1024.6 (!!!!)
Статус: Участник

Создано: 3 декабря 2016 03:05 New!
Цитата · Личное сообщение · #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 (постоянный)
Статус: Участник

Создано: 3 декабря 2016 04:10 New!
Цитата · Личное сообщение · #5

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

http://www.winpcap.org/

Ранг: 7.5 (гость)
Статус: Участник

Создано: 3 декабря 2016 13:12 New!
Цитата · Личное сообщение · #6

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

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

Ранг: 53.9 (постоянный)
Статус: Участник

Создано: 9 декабря 2016 04:14 New!
Цитата · Личное сообщение · #7

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


Ранг: 322.8 (мудрец)
Статус: Участник

Создано: 9 декабря 2016 23:19 New!
Цитата · Личное сообщение · #8

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

Ранг: 3.1 (гость)
Статус: Участник

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

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

Видеокурс ВЗЛОМ