Sniff Межпроцессное взаимодействие

У меня есть два приложения (.exe), которые работают на одном компьютере (Windows XP x86), и я знаю, что они взаимодействуют друг с другом (я не знаю, как, я их не писал). Я хотел бы найти способ пронюхать связь между приложениями. Есть ли способ сделать это?

Я немного возился с ProMon и, вероятно, могу понять это оттуда, но мне интересно, есть ли что-то более конкретное для этой цели. ProMon может быть немного пугающим.


person Without Me It Just Aweso    schedule 13.12.2011    source источник


Ответы (1)


Во-первых, вы можете наблюдать за своими двумя приложениями с помощью трассировщика системных вызовов, такого как StraceNT (или см. этот вопрос). Если повезет, вы сможете выяснить, взаимодействуют ли процессы через локальный сокет, TCP-соединение (несомненно, через localhost), канал, именованный файл или разделяемую память.

Вы также можете запустить netstat во время работы приложений, чтобы узнать, открывают ли они какие-либо сетевые порты.

Как только вы поймете, что ищете, вы сможете выбрать более конкретный инструмент мониторинга. Если это сетевое соединение (даже через петлевой интерфейс), вы можете попробовать собрать данные с помощью чего-то вроде WinDump. Если связь осуществляется через общую память, вы можете подключить отладчик к одному из двух процессов и периодически проверять общую память.

person Kerrek SB    schedule 05.09.2012