x64dbg 기본 사용법과 디버깅 흐름 이해하기 - Windows 어셈블리 디버거 입문
Windows에서 어셈블리 디버깅을 배울 때 가장 많이 쓰는 도구인 x64dbg를 소개합니다. x64dbg의 설치 방법, 기본 인터페이스 구성, Breakpoint 설정, Step 실행(F7, F8), 레지스터/메모리/스택 분석 방법을 기초부터 정리합니다.
x64dbg란?
- x64dbg는 Windows용 오픈소스 디버거.
- x64(64비트), x86(32비트) 프로그램을 역분석, 디버깅할 수 있음.
- 쉽게 말하면, “프로그램 내부에서 무슨 일이 일어나는지 실시간으로 볼 수 있게 해주는 툴”.
기본 구성
x64dbg.exe: 64비트 디버깅용 실행 파일x32dbg.exe: 32비트 디버깅용 실행 파일- *GUI(그래픽 인터페이스)**로 조작하기 때문에 초심자도 쉽게 접근할 수 있다.
- 내부는 TitanEngine 기반.
주요 기능
| 기능 | 설명 |
|---|---|
Breakpoints |
프로그램 실행 도중 특정 위치에서 멈춤 (BP) |
Memory View |
메모리 영역을 실시간으로 확인 |
Stack View |
스택 프레임 분석 (함수 호출 구조 등) |
Symbol Loading |
심볼 로드해서 함수명 같은 것 보기 |
Plugin 지원 |
다양한 플러그인으로 기능 확장 가능 |
Script 지원 |
자동화, 반복 디버깅 가능 |
x64dbg 설치
- 공식 사이트: https://x64dbg.com/
- Download > 최신버전 다운로드
- 설치 or 포터블(zip) 풀어서 사용
설치 완료하면
x64dbg.exe(64비트 디버거) 바로 실행 가능
x64dbg 기본 화면
보통 열면 이런 화면 구성:
- CPU View (어셈블리 명령어 나열)
- Registers View (
RAX,RBX같은 레지스터 값 확인) - Stack View (스택 프레임 구조 확인)
- Memory Dump (메모리 값 훑어보기)
- Log Window (로그 기록)
디버깅 기본 흐름
- 프로그램 열기 (Attach or Open)
- 직접 실행하거나, 이미 실행 중인 프로세스에 붙을 수 있어.
- Breakpoint 설정
- 예를 들면
main진입 부분, 특정 함수 호출 직전 등에BP걸기.
- 예를 들면
- Step Over / Step Into
Step Over (F8): 함수 호출은 건너뜀.Step Into (F7): 함수 안으로 직접 들어가서 디버깅.
- Register / Stack / Memory 보기
- 현재 상태를 계속 확인.
- 패치하거나 분석 마무리
- 패치(값 변경), 분석 기록 남기기 등 가능.
x64dbg 조작 기본 단축키
| 단축키 | 기능 |
|---|---|
F2 |
Breakpoint 설정/해제 |
F7 |
Step Into (한 줄 실행, 함수 안 들어감) |
F8 |
Step Over (함수 건너뛰기) |
F9 |
Run (중단점까지 실행) |
Ctrl+G |
특정 주소로 점프 |
Ctrl+M |
메모리 찾기 (Memory Search) |
Ctrl+F |
현재 창에서 문자열/값 검색 |
간단한 사용 예시
- 프로그램을 열고 →
F2로 관심 있는 함수 진입점에 Breakpoint 걸고 →F9로 실행 - 걸리면
F7(Step Into)로 명령어를 한 줄 한 줄 실행해보며 흐름 분석 - 레지스터 값, 스택 변화 추적
요약
x64dbg는Windows용 어셈블리 디버깅 툴이고, 프로그램을 한 줄씩 뜯어보거나, 수정하거나, 역분석할 때 쓰인다!GUI기반이라 진입 장벽이 낮고, 레지스터/메모리/스택 모두 동시에 볼 수 있다!
다음편 : 초보자를 위한 x64dbg 실습 흐름 예시
Leave a comment