Я пытаюсь реконструировать стороннее TCP-клиент / серверное приложение Windows XP, SP 3, для которого у меня нет доступного источника. Моя основная линия атаки - использовать WireShark для захвата трафика TCP.
Когда я запускаю определенную команду GUI на стороне клиента, клиент создает TCP-соединение с сервером, отправляет некоторые данные и разрывает соединение. Порт сервера - 1234, а клиентский порт назначается операционной системой и поэтому изменяется.
WireShark показывает, что сообщение, соответствующее введенной мной команде GUI, отправляется дважды . Эти два сообщения имеют разные исходные порты, но имеют один и тот же порт назначения (1234, как упоминалось ранее).
Клиентская сторона на самом деле состоит из нескольких процессов, и я хотел бы определить, какие процессы отправляют эти сообщения. Эти процессы являются долгоживущими, поэтому их PID стабильны и известны. Тем не менее, TCP-соединения являются временными, продолжительностью всего несколько миллисекунд или около того. Хотя я зафиксировал номера портов на стороне клиента в WireShark, и хотя я знаю все задействованные PID, сам факт наличия временных соединений затрудняет определение того, какой PID открыл порт. (Если бы подключения были долгоживущими, я мог бы использовать netstat для сопоставления номеров портов с PID.) У кого-нибудь есть какие-либо предложения о том, как я могу определить, какие процессы создают эти временные подключения?