Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- randzzz
- adsp독학
- ADsP
- OWASP TOP 10
- ADsP합격
- wargame
- dreamhack
- ADsP교재
- 26년 1회
- ADsP시험
- AWS
- HRRN
- 운영체제
- cloudgoat
- writeup
- 세그먼테이션
- ADsP책추천
- 병행성
- OS
- Juice Shop
- 라운드로빈
- id pool
- 교체 정책
- 시나공ADsP
- rev-basic-4
- rev-basic-3
- OpenClaw
- Simple Crack Me
- Pacu
- user pool
Archives
- Today
- Total
chon
X64DBG 디버거 설치 및 사용 방법 본문
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 |