완료됨
Quiz: x86 Assembly 2 질문입니다

https://dreamhack.io/learn/quiz/25
[Code]
main:
push rbp
mov rbp, rsp
mov esi, 0xf
mov rdi, 0x400500
call 0x400497 <write_n>
mov eax, 0x0
pop rbp
ret

write_n:
push rbp
mov rbp, rsp
mov QWORD PTR [rbp-0x8],rdi
mov DWORD PTR [rbp-0xc],esi
xor rdx, rdx
mov edx, DWORD PTR [rbp-0xc]
mov rsi,QWORD PTR [rbp-0x8]
mov rdi, 0x1
mov rax, 0x1
syscall
pop rbp
ret

에서 rdi가 0x400500이니까 0x3037207964343372만 출력하는 거 아닌가요?

#리버싱 #배경지식
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 2
avatar
wyv3rn
무플 방지 위원회장

write 함수는 rdx 만큼 출력합니다.
저기서 rdx는 rbp-0xc니까 저기에 들어있는 값만큼 출력하겠네요

2023.07.20. 21:17
avatar
wyv3rn
무플 방지 위원회장

저게 더 효율적이니까요
예상인데 바로 넣는것 대비 어셈코드 길이가 더 짧을 것 같네요

2023.07.21. 07:12