| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Calling Convention
- CodeEngn
- Python
- 파이썬
- 프로그래머스
- 실행파일
- 리치헤더
- __stdcall
- image section header
- __cdecl
- Image dos header
- 코드엔진
- 32bit
- Rich Header
- __vectorcall
- Programmers
- crackme
- pe format
- Dos Stub
- x32
- stack frame
- RVA
- 리버싱
- ABI
- __fastcall
- rev
- 크랙미
- x64
- 함수 호출 규약
- Reversing
- Today
- Total
목록stack frame (2)
kj0on
0. x64 ABI x64 ABI는 https://kj0on.tistory.com/47 참고1. 정의 스택 프레임(Stack Frame)은 함수가 호출될 때 스택에 형성되는 하나의 논리적 메모리 블록으로, 해당 함수 실행에 필요한 정보를 일시적으로 보관해 주는 단위이다. 32비트 때와 유사한 목적을 가지지만, 64비트 함수 호출 규약과 CPU 설계 변화에 맞추어 구조와 규칙이 달라졌다.2. 함수 프레임 (Function Frame)함수의 시작에 붙는 패턴은 프롤로그(prologue), 끝 부분에 붙는 패턴은 에필로그(epilogue)로 구분할 수 있으며, 직접 작성한 코드의 로직은 두 패턴 사이의 바디(body)에 위치하게 된다. 이러한 공통된 틀은 컴파일 단계에서 컴파일러가 자동으로 삽입한다. 덕분에 ..
0. x32 ABI x32 ABI는 https://kj0on.tistory.com/46 참고1. 정의스택 프레임(Stack Frame)은 함수가 호출될 때 스택에 형성되는 하나의 논리적 메모리 블록으로, 해당 함수 실행에 필요한 정보를 일시적으로 보관해 주는 단위이다.2. 함수 프레임 (Function Frame)#include int fun3(void) { return 3;}int fun2(void) { fun3(); return 2;}int fun1(void) { fun2(); return 1;}int main(void) { printf("Hello World!\n"); // Hello World! fun1(); return 0;} 위 이미지는 main→printf→fun1→fun2→fun3로 깊어졌..