[드림핵 로드맵] System Hacking - Quiz: x86 Assembly 3
먼저 main함수의 코드를 보면 push rbp와 mov rbp, rsp는 스택 프레임을 생성하는 부분이므로 중요하게 생각하지 않아도 될 것 같고, 5행에서 write_n 함수를 호출하는 부분이 눈에 띈다. write_n 함수의 코드에서는 syscall 명령어에 주목해보자. 드림핵 로드맵에서 x64 syscall 테이블을 가져와봤다. rax, rdi, rsi, rdx에 값을 세팅해놓은 뒤 syscall 명령어를 실행하면 세팅한대로 시스템콜 요청이 이루어진다. rax, rdi, rsi, rdx이 어떻게 세팅되었는지 문제 코드에서 살펴보자. 1. write_n함수의 9행에서 mov rax, 0x1을 확인할 수 있다. rax에는 0x1이 세팅되어있고, 이는 write 시스템콜을 요청한다는 의미이다. 2. wr..