첫 번째로 key 값을 구하고, messagebox가 출력되도록 하는
영역을 찾아 입력을 하면 되는 문제이다.
문제를 다운 받은 뒤에 7zip으로 압축을 풀어준다.
혹시라도 더 압축이 되어있을까봐 DIE로 확인해보았다.
더 이상 압축을 풀지 않아도 된다.
문제를 실행시켰을 때 뜨는 화면이다.
아무 문자를 입력하고 check를 누르면 창이 뜨지 않는다.
코드에 문자열을 비교하는 cmp가 따로 있을 것이라고 예상한다.
코드를 자세히 보기 위해 immunity debugger로 실행시켰다.
축하한다는 문자가 출력되기 직전
cmp로 eax와 비교를 하는 부분이 있다.
이 부분이 key 값이라고 예상한다.
7A2896BF는 16진수이기 때문에 10진수로 변환을 해준다.
7A2896BF-> 2049480383
변환한 값을 넣어주면 다음과 같이 정답이라는 문구가 뜬다.
KEY는 찾았으니 이제는 주소영역을 찾아야한다.
주소영역을 찾기 위해 HxD로 열어주었다.
여기서 Congratulation 문구의 주소 영역을 찾아야한다.
2049480383는 10자리이기 때문에 문자열도 10자리를 잡아준다.
여기서 10자리에 대한 영역은 0D3B0D45이다.
2049480383 0D3B0D45 이 둘은 합친게 정답이 된다.