상세 컨텐츠

본문 제목

[Write-up] CodeEngn Advance RCE 8

Reversing Write-Up/03.CodeEngn Advance

by RACC8N 2020. 2. 4. 17:30

본문

문제 : Key 값이 5D88-53B4-52A87D27-1D0D-5B09 일때 Name은 무엇인가

 

힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고..

 

풀이 : 

 

아무것도 입력하지 않고 Check it을 눌렀을 경우 Please Enter More Chars 라는 메세지를 볼 수 있다.

 

디버거를 켜보자.

 

문자열 검색으로 해당 위치까지 올 수 있다.

 

우선 위 에 Name의 길이가 3인지 확인하는 부분이 있는데, 힌트에서 Name은 두 글자라고 했으니 명령어를 수정해보자.

 

밑으로 따라가보면  Key값을 만드는 알고리즘을 확인할 수 있다.

 

Key값을 만드는 알고리즘은 다음과 같이 연산을 하고, 이러한 연산이 밑에 4개 정도 더 있다.

 

이렇게 연산한 값들의 각각 앞에서부터 4자리 6자리 등으로 조합하여 Key를 만드는 것을 확인할 수 있다.

자 그럼 Key 값이 5D88-53B4-52A87D27-1D0D-5B09 일때 Name을 알기위해 맨 처음 5D88을 만드는 알고리즘을 그대로 코딩하였다.

 

Name이 C6일 때의 값임을 알 수 있다. 

 

관련글 더보기

댓글 영역