본문 바로가기

Reversing/CodeEngn

[CodeEngn] Basic RCE L07풀이

https://ch.codeengn.com/

 

CodeEngn.com [코드엔진]

코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다.

ch.codeengn.com


(사진 파일을 워드에서 다시 가져왔더니 화질이 깨진다,,,)

문제

문제를 확인하고 다운로드한 후, exeinfo로 확인해보았다.

 

exeinfo

일단 패킹이 되어있지는 않은 것 같아서, 실행파일을 실행시켜보았다.

 

실행화면 1
실행화면 2

아무 값이나 입력해보았더니 옳지 않다고 한다.

X32 디버거로 분석해보았다.

 

일단 문자열 찾기를 통해 위의 에러 문을 찾아보았다.

 

문자열 찾기

위의

에러문과 성공했을 때 출력되는 것 같은 문구도 있어서 해당 부분으로 이동하였다.

 

 

위의 4023f3과 4023fd에 시리얼 값 같은 문자들이 들어있어서 각각 넣어보았더니 아니라고 한다.

그래프 모드로 흐름을 확인해보았다.

 

그래프 모드

 

두번째 노드에서 eax값이 0이면 well done으로 점프를 취하고 있다.

 

위 노드들의 흐름을 보기 위해 실행을 시켜서 1234567890을 입력하였다.

위의 사진을 통해 우리가 입력한 값은 402324에 저장되고, 402000에 저장된 L2C-57816784-ABEX와 비교하는 것을 알 수 있다.

해당 문자열을 실행화면에 넣어보면 시리얼 키가 맞다고 하는 것을 확인할 수 있다.

 

그런데 문제에서는 C 드라이브 이름이 CodeEngn 일 경우의 시리얼 값을 찾으라고 하였다.

일단 어느 부분에서 c 드라이브 이름을 가져오는지 모르겠어서 07번 문제 실행 파일을 C 드라이브로 옮기고 C 드라이브 이름도 CodeEngn으로 바꿔주고 위쪽에 bp를 걸고 실행시켜주었다.

조금 내려가다 보니 40225c에 c 드라이브의 이름이 담기는 것을 알 수 있었다.

 

이제 아래부분으로 계속 내려가면

 

L2C-5781EqfgEngn4562-ABEX라는 시리얼 값이 나오는 것을 확인할 수 있다.

'Reversing > CodeEngn' 카테고리의 다른 글

[CodeEngn] Basic RCE L09풀이  (0) 2021.08.18
[CodeEngn] Basic RCE L08풀이  (0) 2021.08.18
[CodeEngn] Basic RCE L06풀이  (0) 2021.08.01
[CodeEngn] Basic RCE L05 풀이  (0) 2021.08.01
[CodeEngn] Basic RCE L04풀이  (0) 2021.08.01