У меня есть приложение, которое общается с каким-то сервером. Я хочу знать, каков IP этого сервера. Как я могу захватить весь трафик от определенного приложения, а не только весь трафик, как Wireshark?
4 ответа
Можно захватить весь сетевой трафик для данного приложения, перехватывая вызовы Windows Sockets API. Это инструменты, которые могут помочь.
Проксокет, написанный Луиджи Ауриеммой. Он перехватывает вызовы API и сохраняет захваченный трафик в виде готового к использованию Wireshark файла .cap в формате tcpdump. Нет ничего более объяснительного, чем изображение, предоставленное самим Луиджи:
NirSoft имеет приложение SocketSniff, которое позволяет захватывать трафик определенного процесса. Картинка также стоит тысячи слов:
К сожалению, упомянутые инструменты, скорее всего, не будут поддерживать 64-битные приложения. Однако можно написать собственный перехватчик, используя библиотеку mhook, поддерживающую как 32-битный, так и 64-битный API.
Microsoft Network Monitor может позволить вам сказать «захватывать только пакеты, отправленные в и из этого приложения».
Самым простым в использовании является Fiddler 2. Это отладчик, который позволяет просматривать запросы HTTP, HTTPS и FTP (если они настроены) с любым приложением на вашем компьютере.
После того, как вы установите его, чтобы выбрать конкретное приложение, просто нажмите и удерживайте пункт меню « Любой процесс », затем перетащите курсор в открытое окно и отпустите его. Это целевое приложение будет отображаться только до тех пор, пока вы не щелкнете правой кнопкой мыши по пункту меню, который теперь читает целевой процесс красным текстом, чтобы освободить его.
В Windows TCPView должен делать то, что вам нужно: он может показать вам все соединения TCP и UDP, которые открыта конкретной программой.
Тем не менее, я думаю, что это будет полезно, только если программа открывает соединение и оставляет его открытым; они не собираются показывать вам весь сетевой трафик определенной программы. Возможно, например, что при загрузке он делает очень короткий звонок на домашний телефон, но к моменту запуска TCPView соединение исчезает.
Process Monitor может помочь в получении более подробной информации, но я не использовал его, поэтому я не уверен, сколько он записывает о сетевых сокетах.