프로토콜이 사전 정의 된 SSH 에이전트 (PuTTY의 pageant.exe와 유사 함)를 만들고 WM_COPYDATA를 통해 인증 요청을 에이전트 창에 보냅니다.Windows API : 메시지 보낸 사람 (WM_COPYDATA)의 프로세스 찾기
인증을 요청한 프로세스를 표시하려고합니다. 이 때문에 나는 어떤 프로세스가 WM_COPYDATA를 전송했는지 알아야합니다.
마찬가지로 미리 정의되어 있기 때문에 이 아닌 프로토콜을 변경 (예 : 메시지 자체와 함께 프로세스 ID 보내기) 할 수 있습니다.
송신자가 'wParam' 필드에 자체 HWND를 지정해야한다는 요구 사항을 준수한다고 가정합니다. 'SendMessage (WM_COPYDATA)'는 그것을 시행하지 않습니다. IsWindow()를 사용하여'wParam'에 유효한 'HWND'가 포함되어 있는지 확인할 수 있지만 악의적 인 발신자가 다른 사람의 'HWND'를 지정하는 것을 막을 수는 없습니다. –
@Remy : 물론 전달 된 HWND가 메시지를 보내는 것으로 가정합니다. 이는 질문에서 묻는 것입니다. 사실이없이 요청 된 정보를 검색하는 방법을 알고있는 다른 방법은 없습니다. 위조 된 HWND 값을 WM_COPYDATA 메시지가있는 wParam으로 전달한 응용 프로그램을 추적 할 수는 없습니까? 그래도 좋은 지적입니다. 나는 그것을 제공하기 위해 당신에게 주어진 적절한 신용으로 나의 대답에 그것을 추가했습니다. –
감사합니다. 그거 슬프다. wParam을 이미 보았습니다. 항상 0입니다. 그게 무언가가 제대로 작동하지 않는다는 것을 처음 듣는 순간입니다 ... – divB