안녕하세요. 오늘은 basic rce level4를 풀어보도록 하겠습니다.

홈페이지로 들어가 basic rce leve4를 눌러주세요.

디버거를 탐지하는 함수 이름을 알아내라는군요. 일단 다운로드를 눌러 디버거 프로그램을 탐지하는 프로그램을 다운받아 실행시켜 봅시다.

음 정상이란 문구만 되풀이하여 출력되는군요. 올리디버그를 이용하여 프로그램을 열어봅시다.

재생버튼을 한번 눌러봅시다.

??? 그냥 실행했을때는 정상이라고 떴는데 올리디버그에서 실행하니 디버깅 당함이 반복되서 출력되는군요. 그러면 대체 어디서부터 디버깅당함이 뜨는걸까요?

F8키를 이용해 한줄씩 실행해 봅시다.

한줄씩 실행하다보면 어느 지점부터 숫자가 붉게 변하더니 디버깅당함을 출력하기 시작했습니다. 즉 숫자가 붉게 변한 시점에 디버깅 프로그램이 있다는 것입니다.

살펴보니 0040100F을 불러오고 난 후 바로 디버깅당함이 출력되었습니다. 즉 디버깅함수는 0040100F에 있다는 것을 알 수 있습니다.그래서 0040100F쪽으로 가보았습니다. 가보니까 0040100F에서 0040108B까지 묶여있다는 것을 알 수 있습니다. 그래서 0040100F에서  0040108B까지 찾아보았습니다. 그러자 함수가 2개 나왔습니다.

두개의 함수가 뜨는군요. Sleep랑 IsDebuggerPresent가 뜨네요. 함수이름에 디버거가 들어간다니 너무 수상하군요. 그래서 답칸에 입력해보겠습니다.

홈페이지 - challenges - continue로 들어가 칸에 한번 입력해봅시다.

다음문제가 출력되는걸로 보아 디버거를 탐지하는 함수가 맞는 것 같습니다.

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

'codeengn' 카테고리의 다른 글

codeengn - basic rce level 8  (0) 2015.08.05
codeengn - basic rce level 7  (0) 2015.08.03
codeengn - bagic rce level3  (0) 2015.07.20
codeengn - basic rce level2  (0) 2015.07.15
CodeEngn - basic rce level 1  (5) 2015.07.15
Posted by englishmath
,