CodeEngn Basic12 풀이
Wargame | CTF/Reversing

CodeEngn Basic12 풀이

Basic12번입니다. 성공메세지대신에 정답 Key값을 띄우라는군요.

key값도 구해야하고 그 키값이 있는 공간으로 접근해서 MessageBox 파라메터값도 수정해야겠군요. 일단 파일을 실행시켜봅시다.

키값을 입력하면 성공메세지를 출력하겠군요 올리디버거로 가봅시다.

코드는 매우 간단합니다. 에디트박스 에서 입력받은값과 7A2896BF를 비교해서 같으면 성공메세지를 띄웁니다.

10진수로 변환하면 2049480383 성공키가 됩니다.

이제 이 키 값을 성공메세지의 내용으로 띄우려면 메세지박스의 세번째파라메터인 0040353B 공간에있는 문자를 키값으로 변환해주면 됩니다. HexEdit로 열어봅시다.

일단 PEView로 그 0040353B라는 공간이 파일에서는 어디에 있는지 찾아야겠죠? ImageBase 는 00400000 입니다. 40353B는 403000에서 404000사이 이므로 PEView로 살펴본결과 세번째 섹션 .data 영역에 있군요. 

RVA to RAW 변환을 해봅시다. 353B(RVA) - 3000(VirtualAddress) + 800(Pointer to Raw Data) = D3B

파일 offset은 D3B입니다 D3B 영역으로 가봅시다. 

성공시 출력하는 메세지가 들어있습니다. 성공메세지를 0으로 채우고 키값을 넣어줍시다.

키값은 코드 그대로 출력해야하므로 아스키코드로 변환후에 넣어줍시다.

성공메세지 대신 키값이 나오게 만들었습니다.

풀이완료 ! 

 



'Wargame | CTF > Reversing' 카테고리의 다른 글

CodeEngn Basic14 풀이  (0) 2017.11.20
CodeEngn Basic13 풀이  (0) 2017.09.14
CodeEngn Basic11 풀이  (0) 2017.09.11
CodeEngn Basic10 풀이  (0) 2017.09.03
CodeEngn Basic09 풀이  (0) 2017.09.03