또 뭐하지

[Dreamhack] simple-operation 본문

Write-up/Reversing

[Dreamhack] simple-operation

mameul 2024. 5. 13. 21:28
728x90

풀이

IDA를 통해 chall의 main 함수 코드를 살펴보면

1. Random number v6와 사용자 입력값 v7을 xor하여 v11을 얻는다

2. s1은 s(=v11)을 거꾸로 저장한 것이다

3. s1=s2=a0b4c1d7과 같으면 flag를 출력한다

 

Random number와 입력값의 xor 값이 7d1c4b0a와 같으면 된다. 즉, 7d1c4b0a와 Random number를 xor한 값을 입력해주면된다.

 

from pwn import *

r = remote('host3.dreamhack.games', 21711)

r.recvuntil(b': ')
a = r.recvline()
a = a.decode('utf-8').strip()
b = int(a, 16)^ 0x7d1c4b0a
b = str(b).encode()

r.sendlineafter(b'?', b)

r.interactive()

위의 작업을 실행하는 코드를 작성했다. 그리고 실행해보면 아래와 같이 flag를 얻을 수 있다.

'Write-up > Reversing' 카테고리의 다른 글

[Dreamhack] rev-basic-4  (0) 2024.05.13
[Dreamhack] rev-basic-3  (0) 2024.05.13
[Dreamhack] rev-basic-2  (0) 2024.05.13
[Dreamhack] rev-basic-1  (0) 2024.05.13
[Dreamhack] rev-basic-0  (0) 2024.05.09