[시스템] Prologue [프롤로그 과정]

2021. 11. 18. 00:19·System/System Hacking Techniques

영화나 웹툰등 시작할떄 플롤로그와 에필로그가 있듯

함수도 실행이 되면 플로로그 과정과 에필로그 라고 불리는 과정이 존재한다

이번에는 프롤로그 과정에 대해 알아보도록 하겠다.


우선 플롤로그는 실행되에 해당 함수의 Stack Frame이 생성되면 가장 먼저 실행되는

순서의 명령어들이다. 

 

우선 해당 함수가 호출되면 Stack Frame가 생성되고, 스택에는 RET와 SFP가 쌓이게 되고

그 후 메모리 어딘가에 존재하는 ebp와 esp가 스택에 쌓이며,

해당 스택의 크기를 지정하게된다. 아래 사진을 이해를 도와보자.

 

사진과 같이 스택에는 함수 인자 | RET | SFP | 지역함수, 변수 등으로 쌓이게되며

프롤로그 과정을 거치게 된다.

 

 

위 사진과 같이 제일처음 PUSH ebp를 한다 즉 스택에 베이스가되는 ebp를 스택에 push하며

그 후 mov ebp, esp 하여 ebp와 esp의 주소의 위치를 똑같이 맞추게 된다.

이렇게 되면 베이스주소인 ebp와 스택포인터인 esp가 같게되며,

스택의 제일높은곳과 제일낮은곳이 같은 위치를 가리키게 된다.

 

여기서 esp의 값을 sub와 add를 통해 스택의 크기를 늘리고 줄이게 된다.

 

위 사진은 실제 프로그램을 gdb프로그램을 통해 확인한 결과이다

ebp를 스택에 push하고 ebp와 esp의 위치를 같게 만든 후 sub를 통해 스택의 크기를 늘려준 것을 확인할 수 있다.

 

포린이 : 왜 sub로 esp하면 스택의 크기가 늘어나나요??

 

그 이유는 esp는 스택의끝 제일 낮은 주소값 위치에 존재하게 되며, ebp는 가장 높은위치에 존재하게 된다.

즉 제일 높은곳은 0xffffffff이며. 제일 높은곳은 0x00000000 이기때문이다.

ebp는 베이스값으로 항상 고정되어있어야 하기에 ebp와esp가 같은 위치에서부터 esp를 움직여 줘야하며, esp를 ebp기준으로 낮은 주소값으로 sub해줘야 스택의 크기가 늘어나기 때문이다.

 

사진을 통해 더욱 자세히 알아보자.

 

위 사진은 에필로그를 진행 했을 시 스택의 상택이다 여기서 sub를 통해 스택의 변화를 알아보면

 

위와 같이 esp의 위치가 ebp기준 40바이트 뺀 위치에 존재하게되며

스택의 크기가 0x40 만큼 할당받게 된다.

즉 esp 의 위치는 ebp-0x40 가 된다.

 

주소값은 예를 들기 위해 임의의값이다.

 

 

 

 

https://hyoon.tistory.com/2 [이미지 인용]

 

 

 

'System > System Hacking Techniques' 카테고리의 다른 글

[시스템] PLT 와 GOT [초급]  (1) 2021.11.19
[시스템] epilogue [에필로그 과정]  (1) 2021.11.18
Stack Frame  (0) 2021.11.15
Buffer overflow  (0) 2021.11.15
Return-to-csu 기법 정리  (5) 2021.11.15
'System/System Hacking Techniques' 카테고리의 다른 글
  • [시스템] PLT 와 GOT [초급]
  • [시스템] epilogue [에필로그 과정]
  • Stack Frame
  • Buffer overflow
g2h
g2h
  • g2h
    감자 텃밭
    g2h
  • 전체
    오늘
    어제
    • 분류 전체보기 (143) N
      • Network (4)
      • Web (30) N
        • Web Hacking Techniques (30) N
      • System (32)
        • Tips (11)
        • System Hacking Techniques (21)
      • Pentest (14)
        • Pentest (14)
      • WriteUP (47)
        • sec (0)
      • 도구|Tools (12)
      • Security Issue (3)
      • 1-Day-Analysis (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    web hacking
    내부침투
    Hacking
    해킹툴
    Los
    Reflected XSS
    vulnability
    SQL Injection
    sql
    load of sqlinjection
    Metasploit
    root권한
    해킹도구
    스캔
    침투테스트
    XSS
    권한상승
    skt 해킹
    취약점
    CTF
    해킹
    모의해킹
    취약점 스캔
    cross side script
    Kioptrix
    DoM
    Encoding
    dom based xss
    nosql injection
    스캐닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
g2h
[시스템] Prologue [프롤로그 과정]

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.