URL : https://ch.codeengn.com/
대회 준비하느라 업로드를 못하였습니다.
저는 웹, 네트워크를 담당하였기 때문에 리버싱은 하지 않았습니다.
압축을 풀어보니 실행파일 하나가 보인다.
더블 클릭하여 실행해 보자
음..
이름, 시리얼을 입력하는 창이 보인다.
문제에서 OEP와 OPCODE만 구하면 된다.
따라서 이름과 시리얼 키는 구하지 않도록 하겠다.
우선 PEiD로 패킹 여부를 확인 하자
ASPack으로 되어 있는 것을 확인할 수 있었다.
ASPack은 UPX 패킹와 비슷하다.
우선 ollydbg로 뜯어보자
'PUSHAD'가 보인다 그럼 POPAD도 있다는 것을 유추할 수 있다.
Ctrl+F를 눌러 'POPAD'를 찾아보자
나는 'Ollydbg 201' 버전을 했기 때문에 다르게 나올 수도 있다.
'Ollydbg 110' 버전을 한 사람은 그냥 Ctrl+F 해서 'POPAD'를 입력하고 찾으면 된다.
그래서
'POPAD'를 입력 -> 'Forward' 선택 -> 'Search' 클릭
그러면 'POPAD'가 있는 곳으로 오는데 내가 찾는 건 아닌거 같다.
그래서 다시 한번 'POPAD'를 입력하고 찾아보았다.
RETN이 있는 것을 보아 아무래도 맞는 것 같다.
확인을 위해서 'POPAD'에 'Breakpoint'를 걸고 실행을 해보았다.
그 결과 'PUSH 00445834'를 넣는 것을 알 수 있었다.
계속 실행해 보자
'PUSH EBP'로 시작하는 것을 보니 아마 'PUSH 00445834' OEP인 것 같다.
따라서 OEP는 00445834 이다.
그러면 여기에서 분기점을 찾아야 하는데
성공 등록 구문을 찾으면 된다.
매번 하던 것처럼 문자열을 찾으면 된다.
맨 밑으로 내려 보면 성공 구문이 보인다.
더블 클릭해서 들어가 보자
위로 올려보면 분기점인 JNE이 보인다.
따라서 OPCODE는 75 55이다.
답 : 004458347555
'【 리버싱 】 > [ CodeEngn ] Basic RCE 문제 풀이' 카테고리의 다른 글
[ CodeEngn ] Basic RCE 11 문제 풀이 (0) | 2021.08.30 |
---|---|
[ CodeEngn ] Basic RCE 9 문제 풀이 (0) | 2021.07.25 |
[ CodeEngn ] Basic RCE 8 문제 풀이 (0) | 2021.07.23 |
[ CodeEngn ] Basic RCE 7 문제 풀이 (0) | 2021.07.22 |
[ CodeEngn ] Basic RCE 6 문제 풀이 (0) | 2021.07.21 |