내가 개발한 프로그램이 실행이 되지 않는다.
윈도우 이벤트 뷰어에도 안보인다.
프로그램 로그에도 안찍힌다.
어..라? 왜 이러냐..
위와 같은 상황에서 당황하지 않고, 우리는 프로세스에 대한 분석을 진행해야 한다.
분석 방법은 동적(Dynamic) 분석 과 정적(Static) 분석으로 나뉘는데,
동적 분석은 프로그램을 실제로 실행하면서 내부 동작을 분석하는 방법이고,
정적 분석은 프로그램을 실행하지 않고, 소스코드 혹은 바이너리를 분석하는 방법이다.
이번 포스팅에서는 동적 분석에서 유용한 툴인 Procmon.exe 를 소개한다.
목차
- Procmon이란?
- Procmon 을 활용한 동적 분석
- Procmon 활용 사례
- 사용 시 주의 사항
- 참조
1. Procmon이란?

Procmon(Process Monitor)은 MS에서 제공하는 시스템 모니터링 툴이다.
실행 중인 프로그램이 수행하는 파일 접근, 레지스트리 조작, 프로세스 생성 및 네트워크 활동 등을
실시간으로 추적이 가능하다.
Procmon의 주요 기능
- 파일 시스템 모니터링: 어떤 파일이 생성, 수정, 삭제되는지 추적 가능
- 레지스트리 접근 모니터링: 특정 프로그램이 레지스트리를 읽거나 변경하는지 분석 가능
- 프로세스 및 스레드 활동 추적: 실행 중인 프로세스의 생성, 종료, DLL 로드 여부 확인 가능
- 네트워크 활동 모니터링: 프로그램이 어떤 네트워크 요청을 보내는지 확인 가능
- 필터링 기능: 특정 프로세스나 이벤트만 필터링하여 분석 가능
2. Procmon을 활용한 동적 분석 방법
① Procmon 다운로드 및 실행
Procmon은 Microsoft 공식 사이트에서 다운로드할 수 있으며, 실행 시 관리자 권한이 필요하다.
- Microsoft 공식 사이트에서 Procmon 다운로드
- procmon.exe 실행 (관리자 권한 필요)
- 처음 실행하면 모니터링할 이벤트(파일, 레지스트리, 네트워크 등)를 선택할 수 있음
(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가지는 꼭 기억하도록 한다.
- 필터링 필수: 필터링 없이 실행하면 엄청난 양의 데이터를 기록하므로, 원하는 프로세스나 이벤트만 캡처
- 관리자 권한 필요: 일부 시스템 이벤트는 관리자 권한 없이 모니터링 할 수 없음.
- PML 파일 크기 주의: 장시간 실행 시 로그 파일 크기가 매우 커질 수 있으므로 분석 전 저장 공간을 확인
5. 참조
프로세스 모니터 - Sysinternals | Microsoft Learn
프로세스 모니터 - Sysinternals
파일 시스템, 레지스트리, 프로세스, 스레드 및 DLL 활동을 실시간으로 모니터링합니다.
learn.microsoft.com
'Dev Util' 카테고리의 다른 글
| 게으른 개발자의 키매핑 세팅 (0) | 2025.10.12 |
|---|---|
| [멀티미디어 분석 툴] ffprobe.exe (0) | 2025.03.04 |
| [멀티미디어 변환 툴] FFmpeg.exe (0) | 2025.01.19 |