| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- network
- 리버싱
- TryHackMe
- operating system
- python
- AWS 아키텍처 분석
- AWS 3 Tier Architecture
- AWS
- AWS 보안 사고 사례 모음
- 네트워크
- AWS IAM Role
- AWS 침해 사고 사례 분석
- AWS 인프라 아키텍처
- reversing
- AWS 보안 아키텍처 분석
- AWS 사고 사례 분석
- 프로그래머스
- reversing.kr
- C
- AWS Active Directory
- IAM Federation
- 운영체제
- 침입 차단 시스템(IPS)
- terraform
- dreamhack
- AWS 침해사고 사례 분석
- programmers
- AWS 인프라 분석
- Amazon S3
- 드림핵
- Today
- Total
lhywk 님의 블로그
[Dreamhack] WinDbg Exercise 2 본문
문제
"Correct!"를 출력하는 입력을 찾아주세요! 해당 입력이 문제의 플래그가 됩니다.
문제 풀이
해당 바이너리를 실행해 보면 입력을 받은 후 입력이 올바르면 Correct, 틀리면 Wrong을 출력해요.
1. 정적 분석

main 함수를 디컴파일 해볼게요.
sub_14001970( )은 printf, sub_140019D0( )은 scanf와 대응되요.
v9에 32바이트 만큼 입력 받고 sub_140001000( )의 반환값과 일치하면 Correct 일치하지 않으면 Wrong을 출력해요.
sub_140001000( ) 함수를 분석해보면 되겠네요.

그런데.. 연산이 너무 복잡해요.
900줄의 연산이 수행되기 때문에 분석을 하고 직접 역연산을 하기는 어렵습니다.
바이너리를 실행해서 이 함수의 반환값을 얻는 방향으로 문제를 풀이하는게 좋을거 같아요.
동적 분석을 하기 전 이 함수의 상대 가상 주소를 알아냅시다.

Edit -> Segment -> Rebase program -> value값 0으로 설정
함수를 실행했을때의 상대 가상 주소는 1A7B, 그 다음 명령어는 1A80이네요.
2. 동적 분석
우리는 32번 반복해서 반환하는 값을 알아내면 플래그를 획득할 수 있어요.
WinDbg를 사용해서 간단한 스크립트를 작성해서 풀어봅시다.

WinDbg를 실행하여 해당 바이너리를 올립니다.

lm : List Loaded Modules의 약자로 메모리에 로드된 모듈들의 목록을 가상 주소와 함께 출력
lm 명령어로 Image Base 주소를 확인할게요.
0x7ff629610000으로 되어 있어요.
아까 sub_140001000( ) 다음 명령어의 주소가 0x1A80 이었어요.
이 주소를 중단점으로 설정하고 실행하면 함수의 반환값이 rax에 있을 것이고 크기는 1바이트이므로 al 레지스터의 값을 확인해야 해요.

bp 00007ff6`29610000+0x1A80 : Imagebase + 상대 가상 주소를 더한 가상 주소로 중단점 설정
".printf \"%c\", @al; g" : al의 레지스터 값을 출력하고 ;을 사용하여 명령어 나열, g로 다시 한번 중단점까지 실행
이렇게 구성하면 반복문을 32번 돌면서 al의 레지스터 값이 1바이트씩 출력되면서 반환값을 확인할수 있어요.

g을 입력하여 실행합니다.

아무값이나 입력해볼게요.

총 32바이트의 플래그를 획득합니다.
'Reversing > Dreamhack' 카테고리의 다른 글
| [Dreamhack] rev-basic-6 (0) | 2025.12.17 |
|---|---|
| [Dreamhack] rev-basic-4 (1) | 2025.12.16 |
| [Dreamhack] WinDbg Exercise 1 (0) | 2025.12.15 |
| [Dreamhack] rev-basic-3 (0) | 2025.12.13 |
| [Dreamhack] patch (1) | 2025.12.13 |