Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 웹페이지 만들기
- siss
- 머신러닝
- 파이썬
- 숙명여자대학교 정보보안 동아리
- SWEA
- hackerrank
- 생활코딩
- XSS Game
- C언어
- BOJ Python
- c++
- 백준
- Javascript
- HTML
- PHP 웹페이지 만들기
- 숙명여자대학교 정보보안동아리
- CSS
- lob
- 드림핵
- hackctf
- 기계학습
- WarGame
- Sookmyung Information Security Study
- BOJ
- c
- 풀이
- Python
- The Loard of BOF
- 자료구조 복습
Archives
- Today
- Total
혜랑's STORY
[System Hacking STAGE 2] Quiz: x86 Assembly 2 본문
무지성 공부방/Dreamhack SystemHacking
[System Hacking STAGE 2] Quiz: x86 Assembly 2
hyerang0125 2022. 1. 21. 13:25
Code 실행
main 함수
push rbp
스택에 rbp를 넣는다.
mov rbp, rsp
rsp의 값을 rbp에 대입한다.
mov esi, 0xf
esi에 0xf 값을 넣는다.
mov rdi, 0x400500
rdi에 0x400500 값을 넣는다.
call 0x400497 <write_n>
0x400497에 위치한 write_n 함수를 호출한다.
mov eax, 0x0
eax에 0x0 값을 넣는다.
pop rbp
스택 최상위 값을 꺼내서 rbp에 대입한다.
ret
return address로 반환한다.
write_n
push rbp
mov rbp, rsp
스택에 rbp를 넣고 rsp의 값을 rbp에 대입한다.
mov QWORD PTR [rbp-0x8], rdi
rdi의 값을 [rbp-0x8]의 데이터를 8바이트만큼 참조한 곳에 대입한다.
mov DWORD PTR [rbp-0xc], esi
esi의 값을 [rbp-0xc]의 데이터를 4바이트만큼 참조한 곳에 대입한다.
xor rdx, rdx
rdx와 rdx를 xor 연산한다. (아마 0으로 초기화 하는 것 같음)
mov rdx, DWORD PTR [rbp-0xc]
[rbp-0xc]의 데이터를 4바이트만큼 참조하여 rdx에 대입한다.
mov rsi, QWORD PTR [rbp-0x8]
[rbp-0x8]의 데이터를 8바이트만큼 참조하여 rsi에 대입한다.
mov rdi, 0x1
rdi에 0x1 값을 대입한다.
mov rax, 0x1
rax에 0x1 값을 대입한다.
syscall
syscall의 경우 rax로 무슨 요청인지 나타내고, rdi->rsi->rdx->rcx->r8->r9->stack의 순서대로 필요한 인자를 전달한다. 이때 앞에서 rax에 0x1 값을 넣었으므로 x64 syscall 테이블을 참고하여 write 함수가 실행된다는 것을 알 수 있다. write 함수의 인자로 (rsi, rsi, rdx)가 들어가게 된다.
pop rbp
ret
스택 최상위 값을 꺼내서 rbp에 대입하고 return address로 반환한다.
결과
'무지성 공부방 > Dreamhack SystemHacking' 카테고리의 다른 글
[System Hacking STAGE 2] shell_basic (0) | 2022.01.21 |
---|---|
[System Hacking STAGE 2] Exploit Tech: Shellcode (0) | 2022.01.21 |
[System Hacking STAGE 2] Quiz: x86 Assembly 1 (0) | 2022.01.21 |
[System Hacking STAGE 2] x86 Assembly🤖: Essential Part(2) (0) | 2022.01.20 |
[System Hacking STAGE 2] x86 Assembly🤖: Essential Part(1) (0) | 2022.01.20 |