안녕하세요. 오늘은 코드엔진 3번 문제를 풀어보겠습니다.

홈페이지로 들어가 bagic rce level3을 눌러주세요.

비주얼베이직에서 스트링 비교함수 이름을 알아내라는 군요.

일단 download를 눌러 받아봅시다.

이런 오류가 뜨는군요. 그래서 msvbvm50.dll를 다운받아 설치한 후 다시 실행시키자

다음과 같이 뜨는군요. 보시면 알겠지만 영어가 아니고 다른언어입니다. 그래서 대충해석해보자면 잔소리를 제거하라??? 라는 뜻일 수 있습니다. 물론 확실한 건 아닙니다.

확인을 누르면 다음과 같이 뜨네요. 일단 아무 문구나 넣어 봅시다.

error라는 말은 알아듣겠군요. 자 이제 프로그램의 동작원리를 보기 위해 올리디버그로 열어봅시다.

재생버튼을 눌러봅시다.

떳긴 떳습니다만 level1이랑 다르게 양이 정말 정말 장난아니게 많습니다. 그런데 우린 여기서 패스워드를 알아내야 합니다. 패스워드를 입력하면 성공했다는 문자열이 뜨겠지요. 하지만 양이 너무 많아요. 일일이 다 찾다간 참 힘듭니다. 이럴땐 간단하게 검색으로 찾아 봅시다. 다른 말로 우리는 문자열만 찾아서 뽑아내도록 해봅시다. 

오른쪽 마우스 - search for - all referenced strings를 눌러줍시다.

문자열을 참조하겠다 라는 뜻이죠.

누르시면 아래와 같은 문자열들이 정리되어 보여집니다.

쭉 보시다보면 거의 대부분이 ASCII코드인데 특이하게 UNICODE인 부분이 있습니다. 처음 나오는 UNICODE는 경로인것 같구요. 두번째 UNICODE부터 한 번 봅시다.

2G83G35Hs2

??? 딱봐도 패스워드처럼 보이네요. 일단 이 문구를 더블클릭 해봅시다.

밑의 문자열이 출력된다는군요. 한번 입력해봅시다.

Registrieren을 눌러줍시다.

danke는 고맙다 라는 뜻의 독일어입니다. 아무래도 패스워드가 맞는 모양이군요.

그런데 우리는 여기서 스트링 비교함수 이름을 알아야 됩니다. 아까 뽑아놓았던 문자열에서 밑으로 계속 내려가면 두번째 2G83G35Hs2가 나옵니다. 두번쨰2G83G35Hs2를 더블클릭해주세요.

바로 밑에 보시면 call 호출한다. vbastrcmp 함수를 라고 되어있네요.

여기서 vba는 비주얼베이직을 뜻합니다. 그럼? str은 string의 약자겠군요.

마지막으로 cmp는 비교함수입니다. 그러면? 답이 나왔군요.

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


'codeengn' 카테고리의 다른 글

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