chon

X64DBG 디버거 설치 및 사용 방법 본문

Reversing

X64DBG 디버거 설치 및 사용 방법

chon29 2025. 11. 20. 18:00

x64dbg 디버거 설치

[ 링크 ]

 

x64dbg - Browse /snapshots at SourceForge.net

 

sourceforge.net

이 링크로 들어가면 x64dbg를 설치할 수 있다.

 

Download Latest Version버튼을 눌러 최신 버전을 다운하면 된다. 

 

[ 압축파일 구성 ]

압축 파일 내부는 pluginsdk, release, commithash.txt 파일로 단순하게 구성되어 있다.

 

 

x64dbg 폴더를 생성하여 압축을 해제하면 release폴더에 x64, x32파일이 존재한다. 

각 디버거를 한 번에 설치하기 위해 x96dbg.exe를 더블 클릭하여 실행하면 된다.

 

 실행 시 이 창이 뜨면 Setup을 누르면 바탕화면에 x32dbg, x64dbg의 바로가기 아이콘이 생긴다.

 

[ x32dbg 메인 화면 ]

실행 시 메인 화면의 기능은 다음과 같다.

  구분 설명
(1) 프로그램 코드 어셈블리어 코드와 명령어코드를 나타내고 있는 목적 코드 부분
(2) 레지스터 CPU의 레지스터의 값을 보여주는 창이며, 실행 단계에서 값의 변화를 볼 수 있음
(3) 메모리 메모리 공간의 값을 HEX 코드(16진수) ASCII 코드로 보여주며, 관심 있는 주소를 설정하여 데이터 값의 변화를 확인할 수 있음
(4) 스택 함수에서 사용하는 스택 내용을 보여 주며, 원하는 주소의 스택 영역의 값들을 확인 할 수 있음
(5) 실행 상태 값
(
힌트)
프로그램 코드 부분에서 실행되고 있는 각 해당 위치의 오프셋 값과 변경된 메모리 주소, 레지스터의 내용 등의 힌트 정보를 나타내줌
(6) 함수 스택 변수 프로그램 코드에서 사용되는 매개변수와 지역변수의 위치를 레지스터 변위 값으로 표현

 

x64dbg 환경 설정

[ x32dbg 환경설정 ]

이후 분석을 위해 환경설정이 필요하다.

 

시작 코드 (EP : Entry Point)

프로그램의 시작 위치. 즉, 디버거를 수행하면 처음 멈추는 곳을 설정해야 한다.

[ 설정 - 환경 설정 - 이벤트 탭 (진입점 중단점만 체크) ]

 

메모리에 파일이 올라올 때(main 실행 전에) 멈추게 설정한다.

 

[ 중단점 옵션 ]

설정 설명
시스템 중단점
프로세스가 초기화 되어 사용자 코드를 아직 실행하지 않았을 때 발생하며, 사용자 코드를 실행하기 위한 준비 코드를 볼 수 있음
TLS 콜백(Callbacks)
- TLS 콜백에서 일시 중지하며, main함수가 실행되기 전에 파라미터를 설정할 수 있음
- anti-debug 기술을 시행하기 위한 보호기능들을 불러옴 (안티 디버깅을 무력화 하는 설정)
진입점 중단점
프로그램의 시작 지점으로 이동시켜주는 기능
DLL 진입점
디버깅 중인 프로세스가 가져온 어떠한(어떤 DLL이든 모두) DLL의 시작지점으로 이동하도록 하는 기능
부착 중단점
- 실행되는 프로세스를 열었을 때, DbgUiRemoteBreakin() 함수로 들어갈 수 있도록 하는 기능
스레드 진입점
- 현재의 프로세스에서 실행되었던 새로운 쓰레드의 처음 명령으로 이동하도록 하는 기능
DLL 로드 /
DLL 언로드
- 프로세스에서 DLL이 로드/언로드 됐을 때 DLL로 들어갈 수 있도록 하는 기능
- DLL Load Breakpoint는 코드가 실행되기 이전에 이루어지는 기능
스레드 시작 / 스레드 끝
- 시스템으로 들어갈 수 있도록 허용해주는 기능
- 우리가 디버깅하고 있는 프로그램에서 스레드를 실행하거나 제거하는 기능

 

[ 디버거 실행 단축키 ]

자주 쓰이는 실행키는 색으로 표시!

 

[ 보조 기능 단축키 ]

 

명령어들이나 분석 방법은 이후 실행 파일 분석 과정에서 자세히 다뤄볼 예정이다.

 

'Reversing' 카테고리의 다른 글

Helloworld.exe 분석 및 바이너리 패치 실습  (0) 2025.11.22
컴퓨터 명령어 처리구조  (0) 2025.11.21