Слушайте локальные сообщения

335
Andy

Предположим, клиентское приложение TCP / IP подключилось к определенному порту на сервере.

И клиент, и сервер работают на локальном хосте.

Возможно ли другое приложение (также на локальном хосте) прослушивать сообщения, отправленные клиентом на этот порт?

0

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

1
Frank Thomas

Это полностью зависит от того, что вы подразумеваете под «слушать».

Вы можете настроить wireshark на сниффинг в интерфейсе Loopback, для захвата пакетов в потоке межпроцессных коммуникаций или для служб с адресацией 127.0.0.1.

Тем не менее, вам все еще нужно иметь возможность декодировать двоичные сериализованные данные, что может быть нетривиальным, если процессы передают нетекстовые данные. Однако если данные представляют собой поток символов, большинство анализаторов автоматически декодируют в ASCII и / или Unicode, когда вы просматриваете данные пакетов.

Однако, подобные вам продукты - ваш единственный выбор. Порты являются исключительными для процесса, который их создает, поэтому, если сервер не предназначен для доступа к нескольким приложениям через какую-либо программу-брокер (например, пул соединений), внешние порты не могут отслеживать порты. Единственным исключением является системное программное обеспечение, использующее драйвер для обхода больших фрагментов стека TCP / IP ОС (как это делает анализатор, считывая данные непосредственно с сетевой карты и используя собственный код TCP / IP для анализа структуры данных). Это означает, что вам придется выполнить перехват TCP (атака «человек посередине»), которую очень сложно выполнить против современного стека TCP / IP.

Спасибо, это -> "Порты являются исключительными для процесса, который их создает" - это именно та информация, которую я искал. Не тот ответ, который я хотел заметить, но это другая история. Andy 8 лет назад 0
да, я боюсь, что TCP идет на все, чтобы не допустить вмешательства сторонних лиц в обмен данными, и программы всегда должны исключительно блокировать свой поток ввода-вывода, чтобы быть уверенными, что только они могут буферизовать и манипулировать им в любой момент времени. Это не означает, что MITM совершенно невозможен, и что программное обеспечение не может быть спроектировано так, чтобы другие приложения могли запрашивать доступ к своим ресурсам ввода-вывода, таким как порт, но без средств, специально предоставленных серверным приложением, вам пришлось бы прибегать к эксплойтам. , в конечном счете (ваши потребности в стороне) это, вероятно, хорошая вещь. Frank Thomas 8 лет назад 1