ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • BOF 준비운동 (4)
    Wargame Site/BOF 2019. 4. 23. 13:53

     

    STEP8 > Epilogue

     

    자 이번엔 특정 프레임의 수행이 끝난 뒤, Stack 을 정리해주는 과정을 공부해보자.

    Epilogue 는 leave ret 로 이루어져있고, 이과정을 풀어서 어셈블리어로 표기하면 다음과 같다.


    MOV ESP, EBP

    POP EBP

    POP EIP

    JMP EIP


    1. MOV ESP, EBP

    현재 프레임의 꼭대기를 가르키는 ESP 에 스택의 밑바닥 값을 가르키는 EBP 의 값을 넣는다.

    프레임 내의 할당된 공간 ( Prolog 에서 SUB ESP, N ) 을 해제시킨다. (값은 그대로 남아있다.)

     

    2. POP EBP

    이전 프레임의 밑바닥을 가르키는 값을 EBP 에 저장한다.

    슬슬 돌아갈 준비를 하고있다.

     

    3. POP EIP

    돌아가야할 주소가 담긴 부분을 스택의 꼭대기에서 POP 시키며, 다음 실행위치를 EIP 에 저장한다. 

     

    4. JMP EIP

    EIP 로 이동한다.

     

     

     

    그림을 통해 이해해보도록하자.

     

     

    천천히 과정을 따라가면서 보는 것이 좋다.

    그렇다면 n Frame 을 들어가기 전과 비교를 해보도록 하자.

     

     

    초기에 ESP, EBP 가 제대로 돌아왔으며 EIP 가 n Frame 의 다음인 0x105 이기 때문에, 정상적으로 프레임이 돌아온 것을 알 수 있다.

     

     

     

    기본적인 BOF 준비운동 완료!!

    'Wargame Site > BOF' 카테고리의 다른 글

    BOF ASLR  (0) 2019.04.24
    BOF 들어가기 앞서  (0) 2019.04.24
    BOF 준비운동 (3)  (0) 2019.04.22
    BOF 준비운동 (2)  (0) 2019.04.22
    BOF 준비운동 (1)  (0) 2019.04.21

    댓글

Designed by Tistory.