URL : https://ch.codeengn.com/
실행 파일 하나 보인다.
일단 더블 클릭해서 실행해 보자
보면 이름/시리얼 키를 입력하는게 보인다.
'Register now !'를 누르게 되면 "잘못된 시리얼, 다시 시도하십시오!" 라고 뜬다.
이제 'OllyDbg' 도구를 이용해 05.exe 파일을 뜯어보자
그러면 저번 문제와는 다르게 'PUSHAD' 를 볼 수 있다.
즉 UPX 패킹이 되어 있을 확률이 높다는 뜻이다.
PEiD 도구를 이용해 확인해 보자
UPX로 패킹 되어 있는 걸 확인할 수 있다.
그러면 UPX 패커로 풀어주자
그러면 File size가 증가한 것을 확인할 수 있다.
그리고 다시 'OllyDbg'로 열어보면
'PUSHAD'가 아닌 'PUSH'로 바뀐 것을 확인할 수 있다.
저번 시간에는 함수 찾는 거였다면 이번에는 문자를 찾아보자
어셈블리코드 우클릭 -> Search for -> All referenced text strings
이렇게 나오는 걸 확인할 수 있다
바로 보자마자 실패 문구, 성공 문구 등을 확인할 수 있었다.
정답이 나온 것 같지만 풀이를 계속해보도록 합시다.
우선 실패 문구를 더블클릭하여 들어가 줍시다.
그리고 위로 올라다가 보면
여기가 우리가 입력한 이름과 'Registered User'가 맞는지 확인하는 것 같습니다.
정확하게 보기 위해 실행 해보겠습니다.
<F9>를 누르고 이름을 아무거나 입력해 봅시다.
확인 결과 ZF가 0인 걸 알 수 있었고 밑 JNZ를 만나 시리얼 키를 확인하지 않고 바로 점프하는 걸 확인할 수 있었습니다.
왜? 이미 이름 부분에서 틀렸기 때문이지
그러면 시리얼 키를 확인하지 않기 때문에 실패 문구를 확인할 수 있다.
다시 이름을 입력하는 곳으로 돌아가서 보면
이름은 'Registered User'인 걸 확인할 수 있었다. (대소문자 주의!)
그러면 이름을 입력하고 'Register now!'를 눌러보자
그러면 아까와 다르게 ZF가 1인 걸 확인할 수 있다.
따라서 점프를 하지 않는다.
계속 실행하다 보면 시리얼 키가 맞는지 확인하는 코드를 볼 수 있다.
우리가 입력한 시리얼이 맞지 않기 때문에 ZF가 0인 걸 확인할 수 있었다.
따라서 점프하므로 실패 문구를 확인할 수 있었다.
그러면 아까 이름을 알아냈듯이 시리얼 키도 알아내서 정답을 입력해 보자
정답을 입력하고 'Register now!'를 눌러보자
그러면 우리가 입력한 'Registered User' 이름을 확인 결과 똑같다.
따라서 ZF가 1인 걸 알 수 있기 때문에 점프하지 않는다.
이제 시리얼 키를 또 확인 해야한다.
우리가 입력한 'GFX-754-IER-954'를 확인 결과 똑같다.
따라서 ZF가 1인걸 알 수 있다.
따라서 점프 하지 않는다.
그러면 성공 문구가 나오면서 종료된다.
'【 리버싱 】 > [ CodeEngn ] Basic RCE 문제 풀이' 카테고리의 다른 글
[ CodeEngn ] Basic RCE 7 문제 풀이 (0) | 2021.07.22 |
---|---|
[ CodeEngn ] Basic RCE 6 문제 풀이 (0) | 2021.07.21 |
[ CodeEngn ] Basic RCE 4 문제 풀이 (0) | 2021.07.19 |
[ CodeEngn ] Basic RCE 3 문제 풀이 (0) | 2021.07.18 |
[ CodeEngn ] Basic RCE 2 문제 풀이 (0) | 2021.07.17 |