본문 바로가기

드림핵 워게임

[드림핵/워게임] rev-basic-3

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

 

이전 문제들과 동일하게 문자열을 입력하고 조건에 맞으면 Correct, 틀리면 Wrong을 출력하는 프로그램이다.

 

 

전체적인 코드는 이전의 문제들과 같다.

sub_140001000 함수에 들어가 보자

 

 

0x18번 반복문을 돌며 byte_140003000[i]에 저장되어 있는 값과 (i xor (입력값+i) + 2 * i) 를 비교하는 프로그램이다.

byte_140003000에 저장된 값은 다음과 같다.

 

 

byte_140003000에 저장되어 있는 값과 주어진 수식을 통해 입력값을 구할 수 있을 것 같다.

주어진 수식을 역으로 계산해 보면

 

I_am_X0_xo_Xor_eXcit1ng이 나오고 이것을 입력으로 넣어 주면 Correct 가 잘 나오는 걸 볼 수 있다.