문제를 보면 unpack을 하고 Serial을 찾으라고 한다.
OEP는 Original Entry Point로 패킹된 파일의 실제 프로그램 시작 부분을 의미한다. OEP 이전 실행부분은 패킹된 파일이 메모리에 로드되어 압축을 푸는 명령어가 들어있다고 한다.
그러면 OEP를 제일 먼저 찾아봐야겠군
일단 문제파일을 다운 받았다
디버거에 넣어보자
이런 창이 하나 뜬다
이 프로그램이 패킹되어있다는 의미같다.
열어보면 다음과 같은데 사실 좀 막막하다.
OEP를 여기서 어떻게 찾지 ...
구글링이다.
위 블로그를 참고해서 찾아보기로 했다.
못찾겠다 ,,ㅎㅎ
패킹 여부를 확인해주는 프로그램을 사용하자
이 프로그램을 사용하면 06.exe가 어떤 방식으로 패킹되어있는지 확인할 수 있다.
드래그 앤 드롭으로 파일을 떨어뜨리면
이렇게 나온다.
창을 보면 UXP로 패킹되어 있는 것을 알 수 있다.
UXP를 검색해보니
UPX unpacker도 있나보다 이걸 이용하면 되려나
다시 프로그램 가니까 이런 것도 있어서 이동하면 UPX 다운로드 사이트로 이동한다.
여기서 알맞은 파일을 다운받고 압축을 풀어준다.
cmd 창으로 압축 푼 파일 경로 들어가고 upx.exe 입력하면 사용 방법을 알려준다.
06.exe 파일을 unpacking 해줘야 하니까 upx 폴더에 넣어준다.
그리고 사용법에 맞게 명령어를 입력해준다.
근데 Permission denied 가 떴다. cmd창을 관리자 권한으로 열어야 하나??
관리자 권한인데도 오류가 난다.
다시 사용법을 봐야겠다.
찾아보니 디버거로 열어져 있는 프로세스 상태면 unpacking이 되지 않는다고 한다.
끄고 했더니 unpacking 성공 !
다시 디버거에 넣어주었더니
아까와 다른 모습을 볼 수 있었다.
코드를 뒤지다보니 찾은 것 같다.
ASCII 문자열 다음에 성공 메시지가 있는 것을 보니 저 문자열이 serial 같다 확인해보자
히히 맞단다
그럼 이제 OEP를 찾아야 하는데
OEP는 프로그램의 처음 시작 주소로
특히 packing 된 파일의 경우 unpacking 해주었을 때의 첫 시작 주소가 OEP라고 한다.
그러면 OEP는 바로 00401360이라는 것을 확인할 수 있다.
정답 인증에 맞는 양식으로 auth 인증해보면
성공 !
'Reversing > Wargame' 카테고리의 다른 글
[CodeEngn] Basic RCE L04 (0) | 2021.02.22 |
---|---|
[CodeEngn] Basic RCE L02 (0) | 2021.02.22 |
abex's crackme #2 (0) | 2021.02.18 |
[suninatas] REVERSING 9 (0) | 2021.02.17 |
[XCZ.kr] Prob.9 Easy Reversing (0) | 2021.02.17 |
댓글