-
rev-basic-0리버싱 엔지니어링/드림핵 2022. 3. 31. 15:53
드림핵 rev-basic-0 문제 : https://dreamhack.io/wargame/challenges/14/writeups
rev-basic-0
Reversing Basic Challenge #0 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출
dreamhack.io
어떤 값을 입력해야 correct가 출력되는지 알아내는 기본 문제이다.
1. main
main - main 함수에서 correct, wrong의 경우가 나누어지는 것을 확인할 수 있다
- jz의 조건분기문 확인, 여기서 나누어지는 것으로 예상
- test eax, eax 위 call 함수 발견, 여기서 return된 값으로 test 후 나누어지는 것을 추측할 수 있음.
→ call 코드를 F7로 들어가보자
2. call
- call strcmp가 보임 → 문자열비교
- call strcmp 결과에 따라 1 또는 0을 return하는 모습
- "Compar3_the_str1ng" 문자열 발견
- 해당 값 넣고 실행시 correct
따라서 답은
더보기DH{Compar3_the_str1ng}
후기)
딱히 꼬인것없이 그냥 정석 느낌? 그래서 처음 리버싱 문제로 풀기 좋은 것 같다. 그리고 올리디버거 쓰다가 IDA로 처음 해보는건데 IDA툴이 매우 편함을 알 수 있었다,,
다만, 처음이라 DH{} 형식 안지켜서 한번 틀렸다. 주의해야지
'리버싱 엔지니어링 > 드림핵' 카테고리의 다른 글
rev-baic-7,8 (0) 2022.04.19 rev-basic-5,6 (0) 2022.04.09 rev-basic-4 (0) 2022.04.05 rev-basic-3 (0) 2022.04.05 rev-basic-1,2 (0) 2022.04.02