Reversing Basic Challenge #0
이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다.
해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요!
획득한 입력값은 DH{} 포맷에 넣어서 인증해주세요.
예시) 입력 값이 Apple_Banana일 경우 flag는 DH{Apple_Banana}
실행

>> 사용자에게 무자를 입력받고 프로그램 내부의 어떤 검증과정을 거쳐서 입력한 문자열이 검증을 통과하면 Correct, 통과하지 못했다면 Wrong을 출력함
정적분석

- 바이너리의 아키텍처는 AMD64 (x86-64)
- 파일 포맷은 PE (Portable Executable) 구조
문자열 검색
Wrong / Correct 문자열을 출력하고 있음 > 검색해보기

어떤 입력값을 입력해야 Correct 문자열을 출력하는지 알아내야함

- xref를 통해서 문자열이 어떤 함수에서 참조되는지 알 수 있음
- 다음을 통해 Correct라는 문자열이 main 함수에서 참조되고 있음을 알 수 있음.
Decompile

- sub_140001190 : printf 함수
- sub_1400011F0 : scanf 함수
- sub_140001000 : 입력값 검증 함수
'Reversing > Dreamhack : Reverse Engineering' 카테고리의 다른 글
| [Dreamhack] rev-basic-2 (0) | 2025.04.21 |
|---|---|
| [Dreamhack] rev-basic-1 (0) | 2025.04.21 |
| [Dreamhack] patch (0) | 2025.04.21 |
| IDA (0) | 2025.04.16 |
| Quiz: x86 Assembly 2-3 (0) | 2025.04.16 |