2011-12-13 3 views
1

동일한 컴퓨터 (Windows XP x86)에서 실행되는 두 개의 응용 프로그램 (.exe)이 있고 서로 통신하고 있다는 것을 알고 있습니다. 어떻게 작성했는지 알지 못합니다. 응용 프로그램 간의 통신을 감지하는 방법을 찾고 싶습니다. 이것을 할 수있는 방법이 있습니까?스니프 인터 프로세스 통신

저는 ProMon을 망쳐 놓은 것을했습니다. 아마 거기에서 알아낼 수는 있지만 좀 더 구체적인 것이 있는지 궁금합니다. ProMon은 약간 협박 할 수 있습니다.

답변

3

먼저, StraceNT (또는 see this question)과 같은 시스템 호출 추적 프로그램으로 두 응용 프로그램을 볼 수 있습니다. 운이 좋으면 프로세스가 로컬 소켓, TCP 연결 (의심 할 여지없이 localhost 경유), 파이프, 명명 된 파일 또는 공유 메모리를 통해 통신하는지 여부를 파악할 수 있어야합니다.

응용 프로그램이 실행 중일 때 netstat을 실행하여 네트워크 포트가 열려 있는지 확인할 수도 있습니다.

원하는 것을 알고 나면보다 구체적인 모니터링 도구를 선택할 수 있습니다. 네트워크 통신 (심지어 루프백 인터페이스 이상) 인 경우 WinDump과 같은 데이터를 캡처 할 수 있습니다. 통신이 공유 메모리를 통해 이루어지는 경우 디버거를 두 프로세스 중 하나에 연결하고 공유 메모리를 주기적으로 검사 할 수 있습니다.