※ 작년에 작성한 라이트업입니다. ※ 

 

 

 

Basic RCE L10

OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오
정답인증은 OEP + OPCODE 
EX) 00400000EB03 

 

 

1.     PEiD를 통해서 10.exeaspack으로 패킹이 되어있는 것을 확인할 수 있다.

http://blog.naver.com/PostView.nhn?blogId=suljang2&logNo=140201560221&parentCategoryNo=&categoryNo=23&viewDate=&isShowPopularPosts=true&from=search 사이트를 참고해서 언패킹을 진행했다.

 

 

2.     10.exe파일을 올리 디버거로 열어보았다. PUSHAD로 시작하는 것을 확인할 수 있다. PUSHAD로 시작하는 것은 aspack으로 패킹된 파일의 특징이다.

 

 

3.     F8을 누른 후 ESP에서 Follow in Dump를 선택한다.

 

 

4.     dump창에서 드래그를 한 후 Breakpoint-Hardware, on access-Dword를 선택한다.

 

 

5.     f9로 실행해주면 JNZ~부분으로 이동하게 된다. 상단의 POPAD가 있다.

 

 

6.     RETN으로 들어가면 하단과 같은 화면이 뜨는데 이는 올리 디버거가 분석을 하지 못했을 때 나타나는 화면이다. 여기서 ctrl+A를 눌러주면 언패킹이 완료된다.

 

 

7.     언패킹이 완료되었다. OEP00445834가 된다. 이제 이제 두번째 문제인 등록 성공으로 가는 분기점의 OPCODE를 찾아야 한다.

 

 

8.     텍스트를 확인해보았다. “Resisterd … well done!”이라고 등록에 성공했을 때 등장하는 문자열이 보인다. 이것을 더블 클릭한다.

 

 

9.     등록 성공 메시지에서 조금 위로 올려보면 점프문이 하나 등장한다. 이 점프문에 걸릴 경우 등록 성공 메시지를 띄우는 부분을 건너뛰게 되므로 이 코드가 등록성공으로 가는 분기점임을 알 수 있다. 이 코드의 OPCODE 7555이므로 이 문제의 정답은 004458347555가 된다.

728x90

'CTF > 리버싱' 카테고리의 다른 글

CodeEngn(코드엔진) basic 12  (0) 2020.06.25
CodeEngn(코드엔진) basic 11  (0) 2020.06.25
CodeEngn(코드엔진) basic 09  (0) 2020.06.25
CodeEngn(코드엔진) basic 08  (0) 2020.06.25
CodeEngn(코드엔진) basic 07  (0) 2020.06.25