완료됨
[Expolit Tech: Shellcode에서 open]

push 0x67
mov rax, 0x616c662f706d742f
push rax
mov rdi, rsp ; rdi = "/tmp/flag"
xor rsi, rsi ; rsi = 0 ; RD_ONLY
xor rdx, rdx ; rdx = 0
mov rax, 2 ; rax = 2 ; syscall_open
syscall ; open("/tmp/flag", RD_ONLY, NULL)

강의 3페이지에서 이 부분에서 첫 번째 줄에서 g인 0x67을 스택에 올리고
두 번째 줄에서 나머지 부분을 더해주는 것까지는 이해했습니다. 그런데 세 번째 줄에서 왜 다시 push rax를 해주는건가요? rax를 비워주기 위한 것인가요?

#시스템_해킹 #공격기법
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 2
avatar
wyv3rn
무플 방지 위원회장

두번째 줄에서 더해주는 것이 아니라 rax에 값을 넣어준거고 세번째 줄에서 그 값을 스택에 넣어준 것입니다

2023.05.21. 22:38
avatar
wyv3rn
무플 방지 위원회장

음 저도 정확한 답은 찾지 못했는데...
컴퓨터 입장에서는 그것이 더 효율적이기 때문이라고 합니다.

2023.05.22. 05:33