Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
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
Archives
Today
Total
관리 메뉴

수호의 메모장

Stack 및 Calling Convention 정리 본문

ETC

Stack 및 Calling Convention 정리

수호-_- 2023. 10. 8. 22:08
 Linux Window 
 RDI  RCX
 RSI  RDX
 RDX  R8
 RCX  R9
 R8 Stack
 R9 Stack

http://keepcalmswag.blogspot.com/2018/09/push-pop.html

 

[메모리] 스택 push와 pop 알아보기

스택 메모리 연산을 다루는 push와 pop에 대해서 알아보고, 스택 포인터 rsp를 움직이는 어셈블리 명령어에 대해서 알아봅니다.

keepcalmswag.blogspot.com

https://nekoplu5.tistory.com/entry/64%EB%B9%84%ED%8A%B8-Calling-Convention

 

64비트 Calling Convention

Linux Window RDI RCX RSI RDX RDX R8 RCX R9 R8 Stack R9 Stack 이 순서대로 Argument 가 들어간다. 리눅스는 Argument를 레지스터에 최대 6개까지 지원해주고 나머지는 스택에 Push하는 방식이다 Window는 4개만 지원하

nekoplu5.tistory.com

 

 

 

 

https://rninche01.tistory.com/entry/%EB%A6%AC%EB%B2%84%EC%8B%B1-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%EC%96%B4

 

[리버싱] 어셈블리어 설명 및 종류

1. 어셈블리어란? 기계어와 일대일 대응되는 컴퓨터 프로그래밍 저급언어 기계어는 CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰여 사람이 이해하기에는 어렵기에 어셈블리어를 통해 기

rninche01.tistory.com

 

push ebp

==

sub esp, 0x4

mov [esp], ebp

 

pop ebp

==

mov ebp, [esp]

add esp, 0x4


call some_addr

==

push return_addr

jmp som_addr

 

 

ret

==

pop eip

jmp eip

 

The reason for pop eip ->

mov eip, [esp]

add esp, 0x4

 

CALL로 인해 Return address가 Stack에 Push 되어있기 때문.

 

[EBP] = previous ebp addr

[EBP + 0x4] = ret_addr

 

EBP + -> argument

EBP - -> local variables