Basic RCE L09

HelloMG
|2020. 2. 15. 17:22

Basic RCE L09 문제

StorlenByte를 구하라고 하네요 :D

 

일단 열어봅시다!

PUSHAD

또 PUSHAD가 나왔습니다!

패킹이 되어있다는 소리겠죠 ㅎㅎㅎ?

 

이번에는 한번에 POPAD로 가는 방법을 알려드리겠습니다!

Go to

PUSHAD를 실행시키면 8개의 레지스터가 스택에 쌓인다고 했죠 :D

쌓인 순간의 스택의 위치를 메모리 주소로 찾아갑니다!

그럼 ESP의 위치는 19FF54이므로 메모리도 19FF54로 Go To([Ctrl]+[G]) 해주도록 합시다 :D

Hardware BP

그다음 첫번째 바이트에 브레이크 보인트를 걸어줍니다!

 

그리고 [F9]를 눌러 실행을 시켜주면 바로 POPAD 밑으로 갑니다!

POPAD

이렇게 말이죠 :D

그런데 PUSH 명령어가 3개가 존재하는 걸 볼 수 있습니다!

 

StolenByte의 의미를 알아야 하는데요 !

패커가 임의로 이동 시킨 코드의 윗부분을 의미를 합니다 :D

이러한 경우 정상실행이 되지 않기 때문에 제 위치에 놓은 뒤 덤프를 시켜 정상 실행을 시켜줘야 하죠!

 

덤프하는 방법은 다른 사이트에도 많이 나와있으니 한번 꼭 해보시길 바랍니다 !

* 많은 공부가 되실꺼예요 ㅎㅎㅎ *

 

그럼 저 3개의 PUSH 명령어가 StolenByte면 OEP로 돌아갔을 때 정상적인 모습이 나오지 않겠죠 :D ?

OEP

OEP로 돌아가보니 정상적이지 않은 것을 보아 StolenByte임을 알 수 있습니다!

 

그러므로 정답은 "6A0068002040006812204000"이 되겠네요 ㅎㅎㅎㅎ

 

이만 9번 문제 풀이를 마치겠습니다 :D

'CTF > CodeEngn.kr' 카테고리의 다른 글

Basic RCE L11  (0) 2020.02.24
Basic RCE L10  (0) 2020.02.23
Basic RCE L08  (0) 2020.02.14
Basic RCE L07  (0) 2020.02.13
Basic RCE L06  (0) 2020.02.12