Я пытаюсь написать приложение пользовательского пространства, которое может подключаться к сетевому стеку ОС, обнюхивать пролетающие мимо пакеты и отредактируйте те, которые его интересуют.
После долгих поисков в Google мне кажется, что самый простой (но достаточно надежный) способ сделать это (на любой платформе) - это проект Linux libnetfilter_queue
. Тем не менее, я' m возникли проблемы с поиском какой-либо приемлемой документации для проекта, кроме ограниченной официальной документации. Его основные особенности (как указано в первой ссылке)
. мой собственный. Как именно я имел в виду это сделать? Я попытался изменить предоставленный код sample , но, возможно, я что-то неправильно понимаю. Код работает в режиме NFQNL_COPY_PACKET
, поэтому я получаю весь пакет - но мои модификации в нем, похоже, ограничиваются моим собственным приложением - как и следовало ожидать, учитывая семантика «копии».
Мне кажется, что я должен каким-то образом использовать NF_QUEUE
, но я не совсем понял это. Есть какие-нибудь указатели?
(Если есть более простой механизм для этого, который также является кроссплатформенным, я бы хотел услышать об этом!)