일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제풀이
- codeengn basic 20
- codeengn advanced 3
- upx 언패킹 명령어
- StolenByte
- 프로그래밍 언어
- codeengn basic 16
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제 답
- 조건문
- covetknowledge
- codeengn advanced 1
- codeengn basic 15
- codeengn 13
- OEP
- codeengn basic 18
- break
- codeengn basic 19
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제
- codeengn basic 14
- Reversing
- java
- CodeEngn
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제 답
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제풀이
- 리버싱
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 10장 연습문제 답
- 반복문
- codeengn basic 17
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 10장 연습문제풀이
- Today
- Total
One's Knowledge
스택 프레임(Stack Frame) 본문
스택 프레임 : 함수 호출시 생성되는 메모리 블록
프롤로그 : 함수 시작시 실행되는 코드 (스택 프레임 설정)
에필로그 : 함수 종료시 실행되는 코드 (스택 프레임 해제)
함수호출코드
push 매개변수 // 함수호출규약에 따라 다르지만 EBP+8부터 인수1, EBP+12 인수2...
call 함수 (push return address) // call 함수 하면 함수가 끝나고 다음 주소를 push
프롤로그
push EBP // 함수가 끝나고 EBP를 다시 이전 EBP로 돌려줘야하기 떄문에 백업
MOV EBP, ESP // EBP를 새로 스택 윗부분으로 초기화
SUB ESP, n // ESP에 n만큼 공간 할당(지역변수 공간 확보)
에필로그
MOV ESP, EBP // 함수 끝날때 ESP를 EBP로 초기화(지역변수 공간 제거, EBP로 이동)
POP EBP // EBP가 백업해뒀던 EBP로 초기화(이전 EBP로 초기화)
ret (POP EIP) // Return address로 이동
'리버싱 > 이론 정리' 카테고리의 다른 글
PE 파일 주소 개념 정리 (0) | 2025.06.01 |
---|---|
PE FILE FORMAT (0) | 2020.07.26 |
stolen byte (0) | 2020.07.26 |
패킹 (0) | 2020.07.25 |
레지스터 (0) | 2020.07.25 |