| ProcessExplorer 다운로드 및 실행 |
다운로드 받은 Zip 파일을 하나의 폴더에 압축 해제합니다 .
[그림1]
procexp.exe를 실행합니다 .
이제 프로세스 익스플로러가 실행됩니다 .
[그림2] 프로세스 익스플로러의 메뉴줄 및 도구 모음
| ProcessExplorer 메인 창 - Hide Lower Pan |
프로세스 익스플로러를 실행시키고 나서 [그림2]에서 ②(Hide Lower Pan)를 클릭한 상태라면
메인 창은 다음과 같은 모습일 것입니다 .
[그림3] 프로세스 익스플로러 메인창 - Hide Lower Pan
[그림3] ① 은 서비스 영역으로 로딩된 프로세스들을 표시하는 것입니다 .
즉 , 우리가
시작>실행에서 services.msc 라고 치고 엔터해서 볼 수 있는 것들이라 이해하시면 됩니다 .
[그림3] ②는 시작 프로그램 영역 ,
즉 우리가 시작>실행에서 msconfig라고 치고 엔터해서 뜨는 시스템 구성 유틸러티에서
시작 프로그램 탭으로 이동해 볼 수 있는 시작 프로그램들의 프로세스들 ,
또는 우리가 실행시킨 프로세스들입니다 .
작업관리자의 경우에는 프로세스 명칭들만 보는 것이 가능하지 그 외 프로세스의 경로라든가 어느 영역에 속하는지
또 프로세스 트리라든가 하는 것등은 보는게 불가능합니다 .
그렇다면 이러한 정보를 볼 수 있고 없음은 어떤 차이가 있을까요 ?
간단한 예제들을 통하여 알아보기로 합니다 .
[예제1]
예를 들어서 작업 관리자를 통하여 보니 svchost.exe가 무수히 실행이 되어 있습니다 .
그런데 작업관리자 수준에서는 svchost.exe가 많다는 외에 그 어떠한 정보도 알 수가 없습니다 .
svchost.exe는 정상적인 경우 프로세스 익스플로러로 볼 때 서비스 영역에서 실행이 되어야 하고
또 그 경로는 system32여야 합니다 .
그러므로 [그림3]② 영역에서 실행되는 svchost.exe가 있다면 그 것은 악성코드입니다 .
또 한편 실행되고 있는 svchost.exe들을 프로세스 익스플로러 상에서 더블 클릭을 해보면
[그림4] 프로세스 익스플로러에서 보는 파일 properties
[그림4]에서 볼 수 있듯이 그 경로가 단박에 파악이 되고 ,
또한 서비스 영역에 속한 프로세스의 경우라면
해당 프로세스가 제공하는 서비스가 무엇인지도 알 수가 있습니다 .
그러므로 svchost.exe들중에 악성코드로써 침투된게 있다면 금방 파악이 가능할 것입니다 .
관련 글 : : 2009/01/31 - [유용한 팁들] - svchost.exe의 정상 경로
[예제2]
어떤 프로세스가 오류가 나서 응답이 없는 경우 해당 프로세스를 죽여도 죽지 않는 경우가 있습니다 .
예를 들어서
인터넷 익스플로러가 응답 없음에 빠졌는데 작업관리자에서 아무리 꺼도 죽지를 않는
경우 , 그 이유는 인터넷 익스플로러에 그 오류를 보고하기 위한 프로세스와 또 디버깅을 통해 오류
보고를 하려는 닥터왓슨 프로세스가 하위 프로세스로 따라 붙었기 때문인데 , 이 경우는 이 하위
프로세스들이 작업을 마칠때까지는 응답없는 인터넷 익스플로러가 죽지를 않기 때문에
응답없는 프로세스를 죽이는게 한참 걸려 짜증이 날 수도 있습니다 .
그러나 프로세스 익스플로러에서는 이런 경우 단박에 해결이 가능합니다 .
이에 대한 자세한 확장된 정보는 아래 관련 글들을 보아 주시기 바랍니다 .
관련글 : : 2009/02/13 - [유용한 팁들] - 응답없는 프로세스는 왜 안죽을까 ?
관련글 : : 2009/02/15 - [묻고 답하기] - 응답없는 프로세스 - 확장 .
| ProcessExplorer 메인 창 - Show Lower Pan |
이제 [그림2]에서 ②(Show Lower Pan)를 클릭한 상태라면 메인 창은 다음과 같은 모습일 것입니다 .
[그림5] 프로세스 익스플로러 메인창 - Show Lower Pan
[그림5]① 녹색 박스 친 부분을 Lower Pan이라고 부르는데
이 부분은 위 [그림5]에서 빨간 네모친 부분을 부분을 보면 프로세스 하나를 클릭해 놓아서
파랗게 된 것이 보이실터인데요 .
그렇게 Upper Pan에서 선택된 프로세스에 대한 라이브러리
또는
핸들들(Handles)을 보여 주는 창입니다 .
라이브러리는 프로세스가 실행될 때 따라 실행되는 .dll들 ,
핸들(handle)은 해당 프로세스와 관련된 레지스트리 사항들의 표시라고
이해하시면 빠를 것입니다 .
DLL 보기와 Handles 보기는 [그림2]의 ③번 스위치에 의하여 전환이 됩니다 .
이제 간단한 예제와 다른 블로거의 관련글을 통하여 라이브러리를 볼 수 있다는데 대한 의미를
찾아 보기로 합니다 .
[예제]
예를 들어 인터넷 익스플로러가 이상하다고 가정을 하고 심파일 툴바가 악성코드라고 가정을 합니다 .
어느 순간 인터넷 익스플로러가 이상한데 , 작업관리자로는 아무리 보아도
이상한 프로세스가 보이지를 않습니다 .
이런 경우는 라이브러리(.dll) 수준에서 어떤 악성코드 파일이
인터넷 익스플로러(iexplorer.exe)로 인젝션이 되었다고 보아야 합니다 .
그래서 프로세스 익스플로러에서 iexplorer.exe를 택하고 그 라이브러리들을 보았더니
[그림6] 프로세스별로 보는 하위 라이브러리들 - 이 그림에서는 iexplorer.exe
[그림6]에서 보듯 다른 파일들은 Company Name만 참조해도 정상으로 보이는데
빨간 네모친 cablemokey.dll 만 어디 듣보잡 파일입니다 .
(사실 cablemokey.dll 은 악성코드가 아니고
심파일 툴바 모듈로써 iexplorer.exe에 인젝션된 상태입니다.)
이런 경우 백신이 이 것을 진단하지 못하고 있다면 ,
우선 아래 관련 글에서 제시한 방법을 통하여
악성 여부를 판단 후 수동 제거 및 사용중인 백신 회사로 신고등의 절차를 고려하시면 될 것입니다 .
| ProcessExplorer 참고 사항들 |
1 . 프로세스 익스플로러를 활용해 어떤 프로그램이 프리징(Freezing)된 원인을
thread 수준에서 찾아 볼 수 있습니다 .
이에 대한 확장된 정보는 아래 관련 글을 참조하시기 바랍니다 .
관련 글 보기 : : 2009/04/03 - [유용한 팁들] - 샌드박스 (sandbox)내에서의 프로그램 제거
2 . [그림2]의 ①을 통하여 현재 상태의 저장이 가능합니다 .
만약 [그림3]과 같은 상태에서 [그림2]의 ①을 클릭한다면
현재 시스템에 실행중인 모든 프로세스들의 정보를 텍스트로 저장이 가능합니다 .
만약 [그림5]와 같은 상태에서 특정 프로세스를 선택하고 [그림2]의 ①을 클릭한다면
실행중인 모든 프로세스 + 선택된 프로세스의 라이브러리(.dll)들이
텍스트로 저장이 됩니다 .
이러한 정보 저장은 자신의 시스템에 문제 발생시
다음 지식 같은 곳에 질문을 올려 해결하려 한다면 답변을 얻는데
도움이 되는 양질의 정보가 될 수도 있습니다 .
3 . Handles 부분은
일반적인 사용자들의 입장에서 구별도 잘안되는 사항이라서 설명에서 제외를 하였습니다 .
4 . 프로세스 익스플로러에는 작업관리자 대체 기능이 제공되는데요 .
이 기능은 쓰지 마시기 바랍니다 . 시스템이 전체적으로 프리징되었을 시
작업관리자는 신속하게 실행이 가능해 해결의 단초를 제공해줄 수 있는 반면
그런 상황에서 프로세스 익스플로러는 실행이 잘 안됩니다 .
5 . 일전에 모(某) 보안 잡지에 안철수연구소 분석가이신 분께서 올리신 글을 보면
악성코드 분석의 기본 도구들중에
프로세스 익스플로러 , Autoruns , 그리고 TCPView가 포함되더군요 . 아래 Autoruns와 TCPView와 관련된 제 글들도 링크 걸어 봅니다 .
TCPView는 프로그램 리뷰를 썼었고 , Autoruns에 대하여는 조각 글들입니다 .
댓글 없음:
댓글 쓰기