본문 바로가기
Dev Util

[동적 분석 Tool] Procmon.exe

by 잘 까먹는 다람쥐 2025. 2. 11.
내가 개발한 프로그램이 실행이 되지 않는다.
윈도우 이벤트 뷰어에도 안보인다.
프로그램 로그에도 안찍힌다.
어..라? 왜 이러냐..

 

위와 같은 상황에서 당황하지 않고, 우리는 프로세스에 대한 분석을 진행해야 한다.

 

분석 방법은 동적(Dynamic) 분석 과 정적(Static) 분석으로 나뉘는데,

 

동적 분석프로그램을 실제로 실행하면서 내부 동작을 분석하는 방법이고,

정적 분석프로그램을 실행하지 않고, 소스코드 혹은 바이너리를 분석하는 방법이다.

 

이번 포스팅에서는 동적 분석에서 유용한 툴인 Procmon.exe 를 소개한다.


목차

  1. Procmon이란?
  2. Procmon 을 활용한 동적 분석
  3. Procmon 활용 사례
  4. 사용 시 주의 사항
  5. 참조

1. Procmon이란?

 

Procmon(Process Monitor)은 MS에서 제공하는 시스템 모니터링 툴이다.

 

실행 중인 프로그램이 수행하는 파일 접근, 레지스트리 조작, 프로세스 생성 및 네트워크 활동 등을

실시간으로 추적이 가능하다.

 

 

Procmon의 주요 기능

  1. 파일 시스템 모니터링: 어떤 파일이 생성, 수정, 삭제되는지 추적 가능
  2. 레지스트리 접근 모니터링: 특정 프로그램이 레지스트리를 읽거나 변경하는지 분석 가능
  3. 프로세스 및 스레드 활동 추적: 실행 중인 프로세스의 생성, 종료, DLL 로드 여부 확인 가능
  4. 네트워크 활동 모니터링: 프로그램이 어떤 네트워크 요청을 보내는지 확인 가능
  5. 필터링 기능: 특정 프로세스나 이벤트만 필터링하여 분석 가능

2. Procmon을 활용한 동적 분석 방법

 

① Procmon 다운로드 및 실행

Procmon은 Microsoft 공식 사이트에서 다운로드할 수 있으며, 실행 시 관리자 권한이 필요하다.

  1. Microsoft 공식 사이트에서 Procmon 다운로드
  2. procmon.exe 실행 (관리자 권한 필요)
  3. 처음 실행하면 모니터링할 이벤트(파일, 레지스트리, 네트워크 등)를 선택할 수 있음
    (ToolScript 있으니 마우스 올려서 각각 어떤 옵션인지 확인!)

 

② 필터 설정하기

Procmon은 기본적으로 모든 이벤트를 기록하기 때문에, 필요한 정보만 추출하려면 필터링이 필수적이다.

(필터링 안하면, 모든 프로세스의 동작이 중구난방 쌓인다. 궁금하면 해봐도 좋다.)

 

  • 특정 프로세스만 추적하려면 "Process Name is <프로그램 이름>" 필터 추가
  • 특정 레지스트리 키 접근만 확인하려면 "Path contains <레지스트리 키>" 필터 추가
  • 파일 접근 분석을 위해 "Operation is ReadFile/WriteFile" 필터 설정

 

③ 실시간 분석하기

필터를 설정한 후 프로그램을 실행하면, 해당 프로세스의 파일 접근, 레지스트리 변경, 네트워크 요청 등을

실시간으로 확인할 수 있다.

  • 프로그램이 실행될 때 어떤 파일을 로드하는지 분석
  • 특정 DLL이 정상적으로 로드되었는지 확인
  • 보안 점검을 위해 프로그램이 불필요한 레지스트리 수정을 시도하는지 확인

add) 필터링을 한다고 해도, 모든 이벤트에 대한 캡처 중 필터링 대상만을 화면에 보여주는 것이므로

이벤트 캡처를 너무 오래 하면, 로그 크기가 걷잡을 수 없이 커진다. 필요한 만큼만 캡처 후 멈추도록 한다!

ctrl + E 단축키 임.

 

④ 결과 분석 및 활용

Procmon은 수집된 이벤트를 CSV 또는 PML 파일로 저장이 가능함.


3. Procmon 활용 사례

악성코드 분석

  • 특정 실행 파일이 시스템 파일을 변경하거나, 의심스러운 레지스트리 키를 수정하는지 확인
  • 루트킷(rootkit)이나 백도어(backdoor)와 같은 악성코드의 실행 패턴 분석

애플리케이션 디버깅 및 트러블슈팅

  • 프로그램이 정상적으로 실행되지 않을 때, 필요한 파일을 찾지 못하는 문제 해결
  • 특정 DLL을 불러오지 못하는 경우, 원인 파악

보안 취약점 분석

  • 애플리케이션이 민감한 시스템 파일을 불필요하게 접근하는지 확인하여 보안 개선
  • 불필요한 네트워크 요청이 있는지 점검하여 보안 설정 강화

4. Procmon 사용 시 주의할 점

Procmon 을 사용해서 분석을 진행하는 경우, 아래 3가지는 꼭 기억하도록 한다.

  1. 필터링 필수: 필터링 없이 실행하면 엄청난 양의 데이터를 기록하므로, 원하는 프로세스나 이벤트만 캡처
  2. 관리자 권한 필요: 일부 시스템 이벤트는 관리자 권한 없이 모니터링 할 수 없음.
  3. PML 파일 크기 주의: 장시간 실행 시 로그 파일 크기가 매우 커질 수 있으므로 분석 전 저장 공간을 확인

5. 참조

프로세스 모니터 - Sysinternals | Microsoft Learn

 

프로세스 모니터 - Sysinternals

파일 시스템, 레지스트리, 프로세스, 스레드 및 DLL 활동을 실시간으로 모니터링합니다.

learn.microsoft.com

 

Understanding Process Monitor.pdf
1.35MB

'Dev Util' 카테고리의 다른 글

게으른 개발자의 키매핑 세팅  (0) 2025.10.12
[멀티미디어 분석 툴] ffprobe.exe  (0) 2025.03.04
[멀티미디어 변환 툴] FFmpeg.exe  (0) 2025.01.19