Windows에서 어셈블리 디버깅을 배울 때 가장 많이 쓰는 도구인 x64dbg를 소개합니다. x64dbg의 설치 방법, 기본 인터페이스 구성, Breakpoint 설정, Step 실행(F7, F8), 레지스터/메모리/스택 분석 방법을 기초부터 정리합니다.

x64dbg란?

  • x64dbgWindows용 오픈소스 디버거.
  • 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)로 명령어를 한 줄 한 줄 실행해보며 흐름 분석
  • 레지스터 값, 스택 변화 추적

요약

x64dbgWindows용 어셈블리 디버깅 툴이고, 프로그램을 한 줄씩 뜯어보거나, 수정하거나, 역분석할 때 쓰인다! GUI 기반이라 진입 장벽이 낮고, 레지스터/메모리/스택 모두 동시에 볼 수 있다!

다음편 : 초보자를 위한 x64dbg 실습 흐름 예시

Leave a comment