소학회/워게임

[reversing]Dreamhack_rev-basic-0

haerim9.9 2025. 3. 31. 18:33

문제 설명

이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다.

해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요!

 


문제 파일을 받고, IDA에서 해당 파일을 열어서 정적 분석을 시도했다.

어셈블리어를 잘 몰라서 f5를 눌러서 디컴파일된 코드를 바로 확인했다.

 

main 함수인데, correct를 출력하는 입력값을 찾아야 하니까, if 조건문이 중요해 보였다. sub_140001000이 무슨 함수인지 잘 모르겠음.

 

이건 프로그램 실행하면 나오는 화면인데, "Input : "을 출력하고 입력을 받는 것 같다. 즉, sub_140001190이 printf고, sub_140011F0은 scanf 같다.

v4가 입력받은 값을 저장하는 변수 같고, 아까 무슨 함수인지 모를 sub_140001000에 이 함수를 인자로 전달하는 것을 확인할 수 있음.

 

sub_140001000 확인해 보니까 이러했다. strcmp면 문자열 비교 함수인데, 전달받은 v4가 "Compar3_the_str1ng"랑 같으면 되는 것 같았다.

 

그래서 해당 문자열을 DH{Compar3_the_str1ng}꼴로 만들어서 플래그 입력창에 입력하니까 풀렸다.

 


개인 공부 목적으로 작성된 글이며, 틀린 정보나 해석이 있을 수 있음.

https://dreamhack.io/wargame/challenges/14

 

rev-basic-0

Reversing Basic Challenge #0 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출

dreamhack.io

 

'소학회 > 워게임' 카테고리의 다른 글

[reversing]H4CKING GAME_Season1 : Keygen  (0) 2025.05.13
[web]Dreamhack_simplesqli  (0) 2025.03.25
[web]Dreamhack_csrf-2  (0) 2025.02.04
[web]Dreamhack_csrf-1  (0) 2025.02.04
[web]Dreamhack_xss-2  (0) 2025.01.28