본문 바로가기
CTF/Dreamhack

[Dreamhack] rev-basic-8

by 8희 2024. 5. 11.

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

 

rev-basic-8

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

dreamhack.io

 


 

Input 문자열이 있는 곳으로 이동한 후에 

사용자의 입력 값을 비교하는  chall8.7FF6F0B11000 으로 이동했다.

 

 

따라서 이 함수는

[7FF6F0B11000] 주소에 저장된 21개의 값과

사용자 입력 값의 연산을 한 값을 비교하는 함수이다.

 

 

[7FF6F0B11000] 주소에 저장된 값들은 이와 같다.

이 함수는 역연산이 힘드므로

키보드로 입력할 수 있는 0x21부터 0x72까지 Brute Force 공격을 통해 

FLAG를 찾아야 된다.

 

key = [0xAC, 0xF3, 0x0C, 0x25, 0xA3, 0x10, 0xB7, 0x25, 0x16, 0xC6, 0xB7, 0xBC, 0x07, 0x25, 0x02, 0xD5, 0xC6, 0x11, 0x07, 0xC5]
cnt = 0
for i in key:
    for j in range (0x21,0x7F,1):
        if (j * 0xFB) & 0xFF == i:
            print(chr(j),end="")
            break

 

코드는 이와 같다.

 

 

FLAG를 찾았다!

 

'CTF > Dreamhack' 카테고리의 다른 글

[Dreamhack] rev-basic-9  (0) 2024.05.12
[Dreamhack] rev-basic-7  (0) 2024.05.05
[Dreamhack] rev-basic-6  (0) 2024.04.28
[Dreamhack] rev-basic-5  (0) 2024.04.28
[Dreamhack] Reversing Basic Challenge #4  (0) 2024.04.10