Process Explorer
Windows 최고의 프로세스 관리 도구
Process Explorer 입니다.
https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
저 유명한 sysinternals (현재는 MS에 인수되었음) 의 Mark Russinovich 씨가 만든 프로세스 관리 유틸리티입니다.
이분은 Windows 운영체제에 대해서 매우 해박한 지식을 갖고 있으며,
유용한 유틸리티(FileMon, RegMon, TcpView, DbgView, AutoRuns, Rootkit Revealer, etc) 들을 만들어 공개하였습니다.
언젠가 한번은 FileMon 과 RegMon 의 소스 코드를 공개하신적이 있습니다. (지금은 없어졌지요.)
Windows 운영체제 초창기에 (맨땅에 헤딩하던) 시스템 드라이버 개발자들에게 있어서
그 소스들은 그야말로
사막의 오아시스 같은 존재였습니다.
각설하고 Process Explorer 의 실행화면을 보실까요.
< Fig.1 - Process Explorer 실행화면 >
Windows 작업관리자와는 비교 할 수 없는 아주 뛰어난 화면 구성을 보여주고 있습니다.
화면 위의 좌측에는 현재 실행중인 프로세스들을 Parent/Child 의 트리 구조로 표시하고 있습니다. (무려 아이콘 까지!!!)
우측에는 프로세스 각각의 PID, CPU 점유율, 등록정보 등을 보여줍니다. (Option 을 통해 더 추가 가능)
화면 아래(욥션)에는 선택된 프로세스에 매핑된 DLL 정보 또는 해당 프로세스에서 오픈한 object handle 을 표시합니다.
구체적으로 뭐가 좋은거죠?
좋아 보이기는 하는데 구체적으로 뭐가 좋은건지 궁금하시죠?
저는 리버싱 할 때 항상 Process Explorer 를 같이 띄워놓고 합니다.
제가 Process Explorer 를 좋아하는 이유는 이렇습니다.
Parent/Child 프로세스 트리 구조
프로세스 실행/종료시 각각의 색깔(초록/빨강)로 표시
프로세스 suspend 기능 (실행 중지)
프로세스 종료(kill) 기능 (Kill Process Tree 기능 지원)
DLL/Handle 검색 (프로세스에 인젝션된 DLL 검색 또는 특정 파일을 오픈한 프로세스 검색)
이외에도 다양한 기능들이 있습니다만, 위 기능들이 특히 리버싱 할 때 많이 사용되는 기능들입니다.
그리고 꾸준한 업데이트(버그 수정, 기능 추가)도 큰 장점입니다.
sysinternals
sysinternals 홈페이지에 가보시면 Process Explorer 의 미니 콘솔 버전들이 있습니다.
(PsKill, PsSuspend, PsList, etc)
이 유틸들도 받아서 실행해 보세요. Process Explorer 의 기능을 축소시킨 멋진 콘솔 버전 프로그램들입니다.
리버싱을 위해 Windows 내부구조를 공부하시는 분들께서는 간단히 이런 콘솔 프로그램을 따라 만들어 보세요.
프로세스와 DLL 등에 대한 이해를 높일 수 있습니다.
(제 경험상 따라 만드는 방법이 실력 향상을 위한 가장 좋은 방법입니다. ^^)
이상으로 최고의 프로세스 관리 유틸리티 Process Explorer 에 대한 소개를 마칩니다.