Сохранение всего сетевого ввода / вывода программы - PullRequest
0 голосов
/ 13 июля 2010

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

Теоретически это должно работать.Идентификаторы процессов могут быть связаны с сокетами, по крайней мере в Linux - /proc/net/tcp связывает пары адресов сокетов с inode, а fstat ing /proc/*/fd/* показывает все inode сокетов по процессу (это то, что netstat -p использует), но это необходимосделано в режиме реального времени с помощью программы захвата трафика, в противном случае все эти данные пропали - поэтому я не могу просто найти нужные файлы позже.(ооо, я не уверен, возможно ли это даже в OSX)

Или другой возможностью будет использование какого-либо низкоуровневого внедрения библиотеки, например LD_PRELOAD, когда программа запускается вместо внешнего монитора.

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

Есть рекомендации?Что-то кроссплатформенное было бы идеально, но если оно работает с OSX или Linux, этого достаточно.

1 Ответ

1 голос
/ 23 октября 2012

Если вы запускаете программу с определенного идентификатора пользователя, вы можете пометить трафик пользователем, используя большинство основных брандмауэров (по крайней мере, netfilter / iptables, который используется в Linux), а затем сохранить его с помощью Wireshark.

Кроме того, если вы просто хотите отладить сетевые данные, попробуйте использовать:

strace -f -e trace=network -s 10000 ping 8.8.8.8

Извините, что требование мультиплатформы не выполнено.Низкоуровневая сетевая обработка других программ в Windows кажется мне немного хитрой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...