Basic RCE L14

HelloMG
|2020. 3. 28. 23:17

Basic RCE L14 문제

문제를 봅시다 :D

뭔지는 모르겠지만 이름이 "CodeEngn"일때 Serial을 구하라고 합니다!

답은 여러개가 될 수 있으며 숫자로 되어 있는 정답을 찾으라고 하네요 ㅇㅅㅇ

bruteforce가 필요..=_=?

일단 분석을 시작해 봅시다!

UPX 패킹

프로그램이 UPX 패킹되어 있더라구요!

편의상 언패킹하고 시작하도록 하겠습니다 :D

UPX 언패킹

언패킹 완료!

이쯤이면 너무 많이해서 이제 자연스럽게 흘러가야겠죠..~_~

EP

EP입니다!

크게 특별한게 눈에 띄지는 않네요!

 

문자열 검색을 통해서 찾아보았습니다 :D

분기점

문자열을 검색해서 찾아보았습니다!

바로 나오더라구용 :D

 

40133C의 분기를 통해서 성공과 실패 메시지박스가 실행이되는군요..!

실행 시켜볼까용 !

프로그램 실행

프로그램에서 두 개의 입력칸과 CHECK, ABOUT 버튼이 있습니다 :D

그래서 저는 직감적으로 위의 칸이 Name, 아래의 칸이 Serial이라고 생각하고 입력했습니다 :D

 

Name -> CodeEngn

Serial -> 123

검색

40132F주소에서 Serial인 "123"이 들어가고

401334주소에서 CALL함수가 실행되니 반환값(EAX)으로 "7B"를 내뱉는군요!

 

그리고 ESI와 비교를하는데 ESI는 "129A1"을 가지고 있습니다 :D

느낌이 오시나용 ㅇㅅㅇ?

7B

7B는 바로 10진수 123의 16진수 값입니다!

 

그럼 "129A1"의 값을 EAX에 저장시켜야 조건문이 일치하니까

Serial값은 당연히 16진수 129A1의 10진수 값이 되겠네요 :D

129A1

이렇게 계산기를 통해서 "76193"이란 값을 알아냅니다!

76193 체크!

그리고 예상대로 EAX와 ESI 레지스터가 같은 값을 가지게 되는군요 :D

Good Job, I Wish You the Very Best

기분 좋은 칭찬의 메시지 박스를 띄웠습니다 ~_~

 

BruteForce가 필요하다고 했는데.. 왜 필요한지는 잘 모르겠네요..!

 

이렇게 문제풀이를 마치도록 하겠습니다 :D

'CTF > CodeEngn.kr' 카테고리의 다른 글

Basic RCE L16  (0) 2020.03.31
Basic RCE L15  (0) 2020.03.30
Basic RCE L13  (0) 2020.03.22
Basic RCE L12  (0) 2020.02.28
Basic RCE L11  (0) 2020.02.24