728x90
스택
- push val : val을 스택 최상단에 쌓음
rsp += 8
reg = [rsp-8]
예제
[Register]
rsp = 0x7fffffffc400
[Stack]
0x7fffffffc400 | 0x0 <- rsp
0x7fffffffc408 | 0x0
[Code]
push 0x31337
결과
[Register]
rsp = 0x7fffffffc3f8
[Stack]
0x7fffffffc3f8 | 0x31337 <- rsp
0x7fffffffc400 | 0x0
0x7fffffffc408 | 0x0
- pop reg : 스택 최상단의 값을 꺼내서 reg에 대입
rsp += 8
reg = [rsp-8]
예제
[Register]
rax = 0
rsp = 0x7fffffffc3f8
[Stack]
0x7fffffffc3f8 | 0x31337 <- rsp
0x7fffffffc400 | 0x0
0x7fffffffc408 | 0x0
[Code]
pop rax
결과
[Register]
rax = 0x31337
rsp = 0x7fffffffc400
[Stack]
0x7fffffffc400 | 0x0 <- rsp
0x7fffffffc408 | 0x0
프로시저
- call addr : addr에 위치한 프로시져 호출
push return_address
jmp addr
- leave: 스택프레임 정리
mov rsp, rbp
pop rbp
- ret : return address로 반환
pop rip
728x90
'리버싱' 카테고리의 다른 글
[드림핵] 6. Exercise: Helloworld (0) | 2024.05.18 |
---|---|
[드림핵] 5. x86 Assembly🤖: Essential Part(1) (0) | 2024.05.18 |
[드림핵] 4. Background: Windows Memory Layout (0) | 2024.05.18 |
[드림핵] 3. Background: Computer Architecture (0) | 2024.05.18 |
[드림핵] 2. Background: Static Analysis vs. Dynamic Analysis (0) | 2024.05.18 |