본문 바로가기

프로세스익스플로러

(2)
[ProcExp] 메시지 박스/팝업 윈도우 주인 찾기 가끔 간단한 메시지 박스나 팝업 윈도우가 어느 프로세스에서 띄워 주는 것인지 모를 때가 있다. 누가 띄워주고 있는 것인지를 프로세스 익스플로러를 이용해 확인하는 방법을 설명한다. 간단히 말로 하면 : 프로세스 익스플로러의 메뉴 아이콘들 중에 동그란 과녁같이 생긴 (Spy++의 것과 같은 모양의) 아이콘이 있다. 이걸 잡은 채로 주인이 궁금한 윈도우를 잡으면 된다. 아래 캡쳐 화면을 참고하라. 과녁 모양 아이콘을 잡는다. 궁금한 윈도우에 포커스가 가면 마우스 버튼을 놓는다. 놓는 순간 프로세스 익스플로러의 프로세스 목록 중에서, 해당 윈도우를 갖고 있는 프로세스가 선택되면서 포커스가 움직인다. 아! 저 메시지 박스는 notepad.exe 가 뿌려주는 것이었구나.
소켙과 핸들 1 몇 회까지 울궈먹으며 포스팅을 할 지 모르겠지만, 1회라고 써 본다. 김성우씨의 네트워크 프로그래밍 책의 예제에 기반한 CPP 프로그램을 실행하면서 프로세스 익스플로러로 핸들을 확인했다. 예제는 아주 간단하게 소켙을 만들었다가, 다시 죽이는 것이었고, 내가 수정한 부분은 소켓을 만들었다, 닫는 작업을 반복해 보는 것이었다. WSAStartup 함수가 실행된 직후이다. 프로그램의 시작부분이라서 쓰레드가 하나 만들어 지는 것 같고, 레지스트리 키 두개를 읽나부다. 레지스트리 키 명을 확인해 보면 HKLM\SYSTEM\ControSet001\Services\WinSock2\Parameters\NameSpace_Catalog5 와 HKLM\SYSTEM\ControlSet001\Services\WinSock2\P..