안녕하세요. 오늘은 basic level 8을 풀어보겠습니다.

홈페이지로 들어가 level8을 눌러주세요.

OEP를 구하라는 군요.OEP란 정상적인 파일을 디버거로 제대로 디버깅했을때 시작하는 위치를 말합니다. Download를 눌러 파일을 받아봅시다.

계산기가 나오는군요. 무슨 의미일까요? 올리디버그로 열어봅시다.

열렸군요. 일단 재생버튼을 눌러봅시다.

재생버튼을 누르면 실행화면이 바뀌는 것이 보입니다. 실행시켜봅시다.

실행시키면 계산기가 실행되는 것이 보입니다. 우리는 실행되는 위치를 알아야 하므로 실행되는 부분을 찾아야 합니다. 중간중간에 브레이크를 해서 실행되는 위치가 어디인지 살펴봅시다. 몇번을 하다 보면 실행위치를 찾게 됩니다.

다음과 같이 브레이크를 걸었을 때 실행이 안됩니다. 즉 마지막 줄을 실행하기전까진 실행이 되지 않는단 소립니다. 그래서 바로 다음줄에 브레이크를 걸고 실행시켜 보았습니다.

다음과 같이 마지막줄 바로 다음줄에 브레이크를 거니 실행되는 것이 보였습니다.

즉 마지막 내용이 프로그램을 시작시키는 위치입니다. 마지막 줄의 내용을 보면

다음과 같이 되어있네요. OEP란 맨 왼쪽의 숫자를 의미하므로 01020DCB를 인증해봅시다.

되지가 않습니다. 그런데? 함수를 보시면 01012475로 점프하라고 되어있습니다. 아마 점프된 곳에서 실행되지 않을까 하는 생각이 드는군요. 그래서 01012475를 인증해보겠습니다.

인증을 해봅시다.

다음문제로 넘어가는 것을 보아 정답인 것 같습니다. 이번 문제는 앞의 문제보다 훨 쉽군요.

이것으로 문제풀이를 마치겠습니다.

'codeengn' 카테고리의 다른 글

codeengn - basic rce level 10  (0) 2015.08.05
codeengn - basic rce level9  (0) 2015.08.05
codeengn - basic rce level 7  (0) 2015.08.03
codeengn - basic rce level4  (0) 2015.07.20
codeengn - bagic rce level3  (0) 2015.07.20
Posted by englishmath
,