본문 바로가기

보안/DreamHack

Dreamhack Recover

그동안 Pwnable 문제만 풀어보았지만 reversing 문제와 암호학 문제 등 여러 종류의 문제를 풀어 볼 것이다.

 

문제에서는 chall 바이너리와 encrypted라는 딱 봐도 암호화가 된 바이너리를 주는데 위 사진은 chall 바이너리의 main함수로 추정되는 함수를 hexray 한 것이다. 

 

\xde\xad\xbe\xef라는 키를 가지고 flag.png를 읽어와서 암호화를 하는 바이너리로 확인이 된다.

 

암호화 과정을 살펴보면 flag.png에서 1byte씩 읽어와서 0부터 1씩 증가하는 v3변수를 가지고 v4[v3%4]와 xor 연산을 한 수 19를 더한 후에 encrypted에 write를 하는 것을 볼 수 있다.

 

이를 역연산하면 원래의 flag.png 파일을 얻을 수 있을 것 같다. 

역 연산을 수행하는 c 코드이고 이를 통해 만들어진 flag를 flag.png로 바꾸어 실행하면 flag를 얻을 수 있다.

 

 

'보안 > DreamHack' 카테고리의 다른 글

Dreamhack - Use After Free  (0) 2025.03.24
Dreamhack basic_exploitation_003  (0) 2025.01.03
Dreamhack basic_exploitation_002  (0) 2024.12.04
Dreamhack Format String Bug  (0) 2024.12.04
Dreamhack out of bound  (0) 2024.10.30