1. 지문
2. 분석
우선 파일 정보를 확인
UPX 2.90 패치되어있으니 원활한 분석을 위해 언패킹을 먼저함
IDA로 열면 오류를 뿜어대길래
Olly로 열 수 밖에 없었다.
언패킹된 문제 바이너리를 열면
이렇게 다양한 함수들을 볼 수 있다.
우선 스트링을 검색해서 실패로 의심되는 문구를 출력하는 부분을 찾아보자
더블클릭하고 이동하면
이 곳으로 이동된다.
(미리 디버깅을 하고 핵심 BP들을 걸었다)
조금더 위로 올라가면 빨갛게 BP가 걸린부분인
4012FB가 있는데 저기가 내가 입력한 이름부분이다.
자. 문제에서 CodeEngn/12345(아무숫자)를 입력하고 CHECK를 눌러보자
그럼 저렇게 두 군데가 변경될 것이다.
그리고 왠만하면 아랫부분(401300~40132C)이 패스워드 부분을 결정하는 곳이라고 생각을 할 수가 있었다.
왜냐하면 별달리 키값을 조정하는 부분을 찾지 못했기 때문이다.
아 미리 알아둘게 있는데, 문제지문에서 숫자5자리라 했으니, 왠만하면 특정 주소에 값이 저장되어 있다는 것도 대강 눈치를 채야한다. 문자열이아니라.
키값 뽑는 분석은 나중에하고, 바로 결론부터말하면
40133A부분에 ESI부분을 보면 키 값을 볼 수가 있다.
패스워드는 76193이다.
이제 디버거 다시 실행해서 저 숫자를 패스워드로 입력하면
성공했다!
'Reversing > CodeEngn Basic RCE' 카테고리의 다른 글
CodeEngn Basic RCE 13 풀이 (최초 C# 분석??) (0) | 2017.07.04 |
---|---|
CodeEngn Basic RCE 12 풀이 (0) | 2017.07.04 |
CodeEngn Basic RCE 11 풀이 (0) | 2017.07.04 |
CodeEngn Basic RCE 10 풀이 (0) | 2017.01.31 |
CodeEngn Basic RCE 09 풀이 (0) | 2016.11.10 |