Вам нужны привилегии для игры с необработанными сокетами. Приведенный выше пример может быть красиво обернут в C ++.

аюсь найти самый простой способ перехвата пакетов TCP SYN, отправленных моим компьютером, в программе на c ++. Есть несколько вариантов, которые я знаю. Можно было бы отслеживать весь трафик и просто выборочно работать с пакетами SYN, ничего не делая с остальными. Другой вариант, с которым я столкнулся, - использовать утилиту фильтрации пакетов, которая будет пересылать пакеты SYN в мою программу. Кто-то предложил мне использоватьNetfilter для того же.

Мне было интересно, есть ли другие варианты или я должен вникнуть в netfilter. Кроме того, любые указания о том, как это сделать с помощью netfilter, будут полезны.

РЕДАКТИРОВАТЬ: я хочу перехватить пакет SYN и, возможно, потребуется изменить его (перенаправить в другое место назначения, изменить порт назначения и т. Д.), Прежде чем повторно внедрить его обратно в сеть

Изменить: я смог сделать это, используя комбинацию iptables и libnetfilter_queue. Я использовал ipfilter для перенаправления всех пакетов TCP SYN в определенную очередь (это было с помощью простой команды)
Затем в программе на Си я смог использовать API libnetfilter_queue для доступа к пакетам в очереди, проанализировать их и повторно внедрить в сеть.

Ответы на вопрос(2)

Ваш ответ на вопрос