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


14

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


Какую операционную систему ты используешь? Как много вы знаете о приложении? Вы знаете, использует ли он определенные порты?
Джеймс Полли

Windows Server 2008 R2 / Windows 7 Я ничего не знаю о номерах портов. Это IP (TCP / UDP) трафик.
melco-man

1
Итак, чтобы уточнить. Вы хотите увидеть хотя бы идентификатор процесса. Но что-то вроде netstat -aon не будет этого делать, потому что вы хотите видеть и неудачные попытки подключения. (Я ничего не знаю, и вам повезет, если кто-то узнает, но не могли бы вы уточнить, чего вы хотите?)
barlop

Знаете ли вы, где приложение будет пытаться подключиться? Я думаю, вы могли бы использовать wireshark и использовать фильтры для детализации до хоста назначения / IP?
Emtunc

Кроме того, в зависимости от типа приложения вы можете заставить его проходить через прокси-сервер и использовать что-то вроде fiddler для захвата трафика этого приложения. Никогда не пробовал, но не понимаю, почему это не сработает. Это может быть так же просто, как изменить настройки прокси-сервера IE на прокси-сервер Fiddler (порт 8888 по умолчанию), или так же сложно, как перекомпилировать приложение для использования прокси-сервера или каким-то образом заставить приложение использовать прокси-сервер - я уверен, что есть приложения там. это может сделать это.
Emtunc

Ответы:


4

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

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

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

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


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

А как насчет Linux?
Аарон Франке

@AaronFranke straceможет помочь. Смотрите здесь: askubuntu.com/a/12465/505090
PF4Public


1

Самым простым в использовании является Fiddler 2. Это отладчик, который позволяет просматривать запросы HTTP, HTTPS и FTP (если они настроены) с любым приложением на вашем ПК.

После того, как вы установите его, чтобы выбрать конкретное приложение, просто нажмите и удерживайте пункт меню « Любой процесс », затем перетащите курсор в открытое окно и отпустите его. Это целевое приложение будет отображаться только до тех пор, пока вы не щелкнете правой кнопкой мыши по пункту меню, который теперь читает целевой процесс красным текстом, чтобы освободить его.

http://fiddler2.com/


Как использовать Fiddler для запросов не HTTP / FTP?
Пейсер

0

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

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

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


4
TCPView поможет только с установленными соединениями. Мне нужно видеть даже неудачные попытки TCP-соединения.
melco-man

1
В этом случае у меня нет идей. Вероятно, стоит добавить это к вопросу, хотя.
Джеймс Полли

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.