서브웨이

CodeEngn Basic RCE L06 풀이 본문

Reverse Engineering/CodeEngn

CodeEngn Basic RCE L06 풀이

샌드위치메이커 2020. 1. 4. 23:20

Detect It Easy를 돌려봅시다.

UPX로 패킹되어있으니 일단 언패킹을 합시다.

시리얼을 찾아야하니 일단 문자열검색을 해봅시다.

얼래 뭔가 시리얼처럼 보입니다. 한번 입력해봅시다.

당황스럽네요.

사실 이 문제의 핵심은 시리얼이 아니라 OEP를 찾는 것이었습니다.

일단 OEP란 Original Entry Point라는 뜻인데요. 패킹된 파일의 실제 프로그램 시작 부분을 의미한다고 합니다.

https://m.blog.naver.com/wsi5555/221261191211

 

[ Reversing ] UPX - OEP 확인

1. UPX - OEP 확인 OEP : Original Entry Point - 패킹된 파일의 실제 프로그램 시작 부분 입...

blog.naver.com

자세한 내용은 이곳에서 도움을 받았습니다.

요약하자면 UPX 패킹의 특징은 PUSHAD와 POPAD사이에서 압축해제가 이루어지고 이후에 나오는 JMP문에서 OEP로 점프가 일어나게 됩니다.

프로그램을 시작하면 이곳에서 시작을 하고

여기까지 압축해제가 일어나고 POPAD를 한 후 JMP문을 통해 OEP로 이동하게 됩니다.

따라서 OEP는 00401360입니다.

위 주소로 가보면

이렇게 원 코드가 나옵니다.

'Reverse Engineering > CodeEngn' 카테고리의 다른 글

CodeEngn Basic RCE L09 풀이  (0) 2020.01.08
CodeEngn Basic RCE L08 풀이  (0) 2020.01.07
CodeEngn Basic RCE L07 풀이  (0) 2020.01.07
CodeEngn Basic RCE L05 풀이  (0) 2020.01.03
CodeEngn Basic RCE L04 풀이  (0) 2020.01.02
Comments