

VM으로 드래그앤드롭하면서 문제가 있었던 건지 허가 거부가 자꾸 떴다.
문제 해설에서는 정상적으로 실행되는 듯하여 권한 문제로 생각해 chmod +x로 실행 권한을 줘보았다. 정상적으로 돌아간다.
문제를 확인하자면
flag1은 flag_1()이 반환하는 값으로, 해당 함수가 실행된 직후의 rax값이다.
flag2는 flag_2()을 실행하면 얻을 수 있고, flag_2()( 실행을 위해서는 0x401179 주소에 위치한 명령어가 실행될 때 rax 값이 0이어야한다.
플래그 형태는 DH{flag1-flag2}이다.
먼저 b flag_1로 중단점부터 만들어주고 run한다. flag_1()에 도달하고 멈춘다.


결과는 위와 같이 뜨는데, flag_1이 반환하는 값이라고 했다. DISASM을 보면 flag_1 함수에 진입한 것을 확인할 수 있다.
여기서 finish를 입력해주면 flag_1()이 끝난 직후에 프로세스를 중단할 수 있겠다.
rax값을 확인해보면 flag1을 얻을 수 있다.

flag2를 얻으러 가보자.
0x401179 주소에 위치한 명령어가 실행될 때 rax값이 0이어야 flag2를 얻을 수 있다고 했다.
rax값이 0이 되어야 한다는 것은 set으로 값을 수정해야할 것 같다.
먼저 중단점부터 설정해주자. b *0x401179
run해주고 set $rax = 0 으로 설정해준다. c로 계속해서 실행되도록 하면 flag2를 얻을 수 있다

'Write-up > DreamHack' 카테고리의 다른 글
| shell_basic (0) | 2026.05.13 |
|---|---|
| addtion-quiz, flag-shop (0) | 2026.05.12 |
| [DH] Digital Forensics Specialist Path 워게임 풀이3 (0) | 2026.03.22 |
| [DH] Digital Forensics Specialist Path 워게임 풀이2 (0) | 2026.03.22 |
| [DH] Digital Forensics Specialist Path 워게임 풀이1 (0) | 2026.03.18 |