Задать вопрос
@Sersoftin

Как перехватывать TCP пакетов на лету?

Приветствую всех. Вопрос состоит в следующем: стоит задача по модификации сетевых пакетов. Необходимо перехватывать пакеты в программе, которые летят по опр. ip адресам через опр. порты (сами пакеты отсылаются не моей программой), перехватывать их, обрабатывать и слать дальше. Размер пакета может после обработки поменяться. Сделать это необходимо под виндой. Смотрел в сторону WinPcap, но:
1) кажись, он вообще не позволяет менять то, что долетело до уровня, на котором он работает.
2) пугает своей низкоуровневостью. Не очень хотелось бы после модификации данных в пакете руками там же править его заголовок (размер, чексумму и т.д.). Так же пугает то, что необходимо указывать интерфейс, который он должен слушать. Хочется так, чтобы само как-то определяло, где там интернет и что нужно слушать.

Хуки send/recv невозможны по опр. причинам, как и использование прокси. Но хочется некий аналог. Золотую середину между хуками и pcap. Существует ли такое и что вы можете мне посоветовать использовать в данной ситуации?
  • Вопрос задан
  • 1443 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
IlyaEvseev
@IlyaEvseev
Opensource geek
tcpreplay.synfin.net/wiki/tcprewrite

А также fragroute и netsed.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rou1997
@Rou1997
По каким-таким причинам невозможны хуки на функции WinAPI, но возможна установка драйвера ядра WinNT?

Еще один вариант - это реверс-инжиниринг, а затем "патчинг" того приложения, которое отправляет пакеты.
Ответ написан
Tujh
@Tujh
Самое лучшее решение - это всё-таки поставить проксирующую машину. Всё остальное потребует слишком много времени.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы