Захват трафика для конкретного приложения

26719
melco-man

У меня есть приложение, которое общается с каким-то сервером. Я хочу знать, каков IP этого сервера. Как я могу захватить весь трафик от определенного приложения, а не только весь трафик, как Wireshark?

11
Какую операционную систему ты используешь? Как много вы знаете о приложении? Вы знаете, использует ли он определенные порты? James Polley 14 лет назад 0
Windows Server 2008 R2 / Windows 7 Я ничего не знаю о номерах портов. Это IP (TCP / UDP) трафик. melco-man 14 лет назад 0
Итак, чтобы уточнить. Вы хотите увидеть хотя бы идентификатор процесса. Но что-то вроде netstat -aon этого не сделает, потому что вы также хотите увидеть неудачные попытки подключения. (Я ничего не знаю, и вам повезет, если кто-то узнает, но не могли бы вы уточнить, чего вы хотите?) barlop 11 лет назад 1
Знаете ли вы, где приложение будет пытаться подключиться? Я думаю, что вы могли бы использовать wireshark и использовать фильтры для детализации до хоста назначения / IP? emtunc 11 лет назад 0
Также, в зависимости от типа приложения, вы можете заставить его проходить через прокси и использовать что-то вроде fiddler для захвата трафика этого приложения. Никогда не пробовал, но не понимаю, почему это не сработает. Это может быть так же просто, как изменить настройки прокси-сервера IE на прокси-сервер Fiddler (по умолчанию порт 8888), или так же сложно, как перекомпилировать приложение для использования прокси-сервера или каким-то образом заставить приложение использовать прокси-сервер - я уверен, что есть приложения там. это может сделать это. emtunc 11 лет назад 0
Вы просто хотите IP-адрес сервера назначения? Если это так, Wireshark может быстро идентифицировать это. Если вы хотите увидеть больше деталей, захват Process Monitor может быть отфильтрован по процессу или PID. Dallas 10 лет назад 0

4 ответа на вопрос

4
PF4Public

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

  1. Проксокет, написанный Луиджи Ауриеммой. Он перехватывает вызовы API и сохраняет захваченный трафик в виде готового к использованию Wireshark файла .cap в формате tcpdump. Нет ничего более объяснительного, чем изображение, предоставленное самим Луиджи:Screenshot

  2. NirSoft имеет приложение SocketSniff, которое позволяет захватывать трафик определенного процесса. Картинка также стоит тысячи слов:Screenshot

К сожалению, упомянутые инструменты, скорее всего, не будут поддерживать 64-битные приложения. Однако можно написать собственный перехватчик, используя библиотеку mhook, поддерживающую как 32-битный, так и 64-битный API.

+1 для бесплатных программ NirSoft, которые невероятно хороши и обычно переносимы (один .exe) и маленькие (<500 КБ). Там очень талантливый разработчик! Basj 6 лет назад 0
1

Microsoft Network Monitor might allow you to say "capture only packets sent to and from this application".

-1 за расплывчатый и в основном гадательный ответ. Cylindric 5 лет назад 0
1
cbabb

The easiest one to use is Fiddler 2. It is a debugger that allows you to view HTTP,HTTPS and FTP (both if configured) requests with any application on your PC.

After you install it, to target a specific application simply click and hold the menu item "Any Process" then drag the cursor to the open window and release it. It will only show that targeted application until you right-click on the menu item that now reads the targeted process in red text to release it.

http://fiddler2.com/

Как использовать Fiddler для запросов не HTTP / FTP? Pacerier 8 лет назад 0
0
James Polley

В Windows TCPView должен делать то, что вам нужно: он может показать вам все соединения TCP и UDP, которые открыта конкретной программой.

Тем не менее, я думаю, что это будет полезно, только если программа открывает соединение и оставляет его открытым; они не собираются показывать вам весь сетевой трафик определенной программы. Возможно, например, что при загрузке он делает очень короткий звонок на домашний телефон, но к моменту запуска TCPView соединение исчезает.

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

TCPView поможет только с установленными соединениями. Мне нужно видеть даже неудачные попытки TCP-соединения. melco-man 14 лет назад 3
В этом случае у меня нет идей. Вероятно, стоит добавить это к вопросу, хотя. James Polley 14 лет назад 0