상세 컨텐츠

본문 제목

CodeEngn Basic RCE L11

REVERSING/Reversing Study

by koharin 2021. 5. 23. 00:42

본문

728x90
반응형

 

OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오.
Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte
Ex ) 00401000FF35CA204000E84D000000


StolenByte란?

  • Packer가 이동시킨 코드의 윗부분을 의미한다.
  • 언패킹을 해도 정상 실행되지 않는데, stolen byte를 다시 원래대로 놓고, IAT를 복구하면 정상 실행할 수 있다.
  • UPX에서는 패킹된 파일에서 POPAD 이후 원래 OEP로 점프 전 PUSH 하는 몇 바이트가 stolen byte에 해당한다.

 

PE 파일 확인

  • UPX packer로 압축된 PE 파일이다. 언패킹을 진행한다.언패킹
  • upx 명령어를 이용해서 언패킹을 했다.

 

디스어셈블러로 분석

x32dbg를 사용해서 분석을 진행해본다.

image

  • F9를 누르면 EntryPoint로 이동할 수 있다.
  • 앞에가 nop으로 채워져 있다. StolenByte는 0x40100C 위의 12바이트가 stolenbyte에 해당한다. 
  • stolenbyte는 OEP로 점프 전 POPAD 이후 PUSH로 몇 바이트 넣는다.
  • POPAD 이후 push하는 코드가 stolen byte에 해당한다.

 

언패킹한 파일에서 찾아보면, 처음 실행해서 F9를 눌렀을 때 pushad에서 멈추고, 뒤로 가보면 popad를 찾을 수 있다.

push하는 3바이트의 코드가 stolenbyte로, 6A0068002040006812204000에 해당한다.

 

아래와 같이 stolen byte를 0x40100c 위에 적고 덤프 파일 생성 후 다시 실행하면 정상 실행할 수 있다.

key = OEP + Stolen Byte = 004010006A0068002040006812204000

 

 

728x90
반응형

'REVERSING > Reversing Study' 카테고리의 다른 글

[Reversing.kr] Easy Crack  (0) 2021.05.25
CodeEngn Basic RCE L12  (0) 2021.05.23
CodeEngn Basic RCE L09  (0) 2021.05.23
abex crackme #1 with code injection(코드 인젝션, 메모리 덤프)  (0) 2021.05.18
abex crackme #2  (0) 2021.05.18

관련글 더보기