윈도우 바이너리 분석의 현장에서 보안 엔지니어가 실제로 쓰는 오픈소스 디버거
악성코드 샘플 하나가 사내 엔드포인트에서 탐지됐다. 백신은 격리했지만 팀은 이 파일이 정확히 무슨 일을 했는지 알아야 한다. 로그만으로는 부족하다.
Setting
x64dbg는 2013년부터 커뮤니티 기반으로 개발된 윈도우 전용 오픈소스 디버거(프로그램 실행 흐름을 한 줄씩 따라가며 내부 상태를 들여다보는 도구)다. 상용 제품인 IDA Pro나 OllyDbg의 대안으로 출발했고, 지금은 GitHub 스타 4만 8천 개를 넘기며 CTF(해킹 경진대회) 참가자부터 기업 보안팀까지 폭넓게 쓰인다. C++로 작성됐고, 32비트(x32dbg)와 64비트(x64dbg) 두 버전을 동시에 제공한다. 마지막 커밋이 2026년 4월인 만큼 지금도 활발히 유지보수된다.
The Story
x64dbg의 핵심 기능은 세 가지다. 첫째, 디스어셈블러(기계어 코드를 사람이 읽을 수 있는 어셈블리 언어로 변환)가 내장돼 있어 소스코드 없이도 실행 파일의 로직을 추적할 수 있다. 둘째, 브레이크포인트(특정 시점에 실행을 일시 정지하는 장치)를 걸어 레지스터 값, 스택, 메모리 상태를 실시간으로 확인한다. 셋째, 그래프 뷰로 코드 분기 흐름을 시각화해 복잡한 조건문 구조를 한눈에 파악한다.
실제 시나리오를 보자. 랜섬웨어 의심 샘플을 격리 환경(샌드박스)에서 x64dbg로 열면, 파일 암호화 루틴이 호출되기 직전 지점에 브레이크포인트를 설정할 수 있다. 실행을 멈춘 상태에서 메모리 맵 뷰를 열면 어떤 시스템 DLL(윈도우 기능 모음 파일)이 로드됐는지, CryptEncrypt 같은 암호화 API가 어느 주소에서 호출됐는지 확인된다. 여기서 인자 값을 덤프하면 암호화 키 생성 방식과 대상 파일 경로 패턴을 역으로 추출할 수 있다. 이 정보는 침해 지표(IoC) 작성과 피해 범위 산정에 직접 쓰인다.
플러그인 생태계도 실용적이다. x64dbgpy를 설치하면 파이썬 스크립트로 반복 분석을 자동화할 수 있고, ScyllaHide는 안티 디버깅(분석 도구 탐지 후 행동을 바꾸는 악성코드 기법) 우회를 도와준다.
The Insight
소스코드가 없는 바이너리 앞에서 공격자의 의도를 복원하는 일은, 결국 실행 흐름을 직접 따라가는 동적 분석(dynamic analysis) 없이는 완성되지 않는다.
보안 엔지니어에게 x64dbg는 CVE 재현 분석, 익스플로잇 동작 확인, 멀웨어 패밀리 분류 등 일상적인 작업에서 반복적으로 등장하는 도구다. 스타트업 보안팀이라면 상용 라이선스 비용 없이 동등한 수준의 분석 환경을 구성할 수 있다는 점이 실질적인 이점이다. 과장 없이 말하면, 윈도우 바이너리를 다뤄야 하는 상황에서 이 도구를 모른다면 선택지가 그만큼 좁아진다.
보안 툴 큐레이션은 teum.io/stories에서 계속된다.
소스코드가 없는 바이너리 앞에서 공격자의 의도를 복원하는 일은, 결국 실행 흐름을 직접 따라가는 동적 분석 없이는 완성되지 않는다.