Reversing Basic Challenge #1
이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다.
해당 바이너리를 분석하여 correct를 출력하는 입력값을 알아내세요.
획득한 입력값은 DH{} 포맷에 넣어서 인증해주세요.
예시) 입력 값이 Apple_Banana일 경우 flag는 DH{Apple_Banana}
- 이름 재설정(n): 함수, 변수의 이름을 변경합니다.
- 숫자-문자 아스키코드 변환(r): 아스키코드 테이블에 따라 숫자는 문자로, 문자는 숫자로 변환합니다.
main 함수 찾기
- 컴파일러 별 main 함수를 호출 하는 패턴이 일정하기 때문에 IDA가 main함수를 자동으로 찾을 수 있음
- rev-basic-1 문제 파일 경우 Visual Studio를 사용해 컴파일이 되었다
- IDA는 Visual Studio가 main 함수를 호출하는 패턴을 알고 있기 때문에 main 함수를 바로 찾을 수 있음
main 함수 분석

- sub_1400013E0, sub_140001440
- 용도를 알아낸 함수는 이름을 바꿔주는 것이 분석하기에 편함
- sub_140001440

- IDA에서 숫자를 문자로 변환하는 단축키는 ‘r’

- 문자열의 끝은 NULL 문자로 0을 의미하기 때문에 마지막에 비교하는 0은 직접 입력하지 않아도 자동으로 들어가 함수의 조건을 모두 만족
'Reversing > Dreamhack : Reverse Engineering' 카테고리의 다른 글
| [Dreamhack] rev-basic-3 (0) | 2025.04.21 |
|---|---|
| [Dreamhack] rev-basic-2 (0) | 2025.04.21 |
| [Dreamhack] rev-basic-0 (0) | 2025.04.21 |
| [Dreamhack] patch (0) | 2025.04.21 |
| IDA (0) | 2025.04.16 |