-榮-

[CodeEngn] Basic RCE L08 본문

CodeEngn/Basic

[CodeEngn] Basic RCE L08

xii.xxv 2021. 3. 23. 17:06

 

● CodeEngn Basic RCE L08 문제

 

CodeEngn Basic RCE L08

 

 

◎ 파일 실행 화면

 

[그림 1] 파일 실행 화면

 

◎ 패킹 및 난독화 여부 확인

 

[그림 2] PEiD - UPX 패킹 확인

 

답은 UPX의 OEP를 구하면 됩니다.

 

 

 

※[참고]

UPX 패킹에서 OEP를 찾는 법CodeEngn Basic RCE L05의 "+α UPX 패킹 상태에서 OEP 찾는 법" 참고

 


 

● CodeEngn Basic RCE L08 풀이

 

[그림 3] 디버거 - OllyDbg / 디버기 - 08.exe (Basic RCE L08 실행파일)

 

 

PUSHAD 명령어를 실행하면 스택에 레지스터 값들이 저장됩니다. 이때, dump 창에서 가장 최근에 저장된 스택 주소로 이동하여 Hardware BP를 겁니다.

 

Hardware BP를 걸고 실행(F9)하면 POPAD가 호출되는 순간, Hardware BP를 설치한 지점이 access 되면서 멈춥니다.

바로 밑에 OEP로 가는 JMP 명령어가 있습니다.

 

[그림 4] Hardware Breakpoint
[그림 5] 실행(F9) 후 멈춘 곳

 

 

[그림 6] OEP

 

CodeEngn Basic RCE L08의 답 : 01012475

 


● CodeEngn Basic RCE L08 확인

 

◎ OEP 확인을 위한 Unpacked

 

[그림 7] Unpacked

 

 

Unpack 한 파일을 OllyDbg에 올리면 OPE를 확인할 수 있습니다.

 

[그림 8] Unpacked 08 file