어셈블리어에서 파일 경로 push할 때 질문

mov rax, 0x676e6f6f6f6f6f6f
push rax
mov rax, 0x6c5f73695f656d61
push rax
mov rax, 0x6e5f67616c662f63
push rax
...
이런식으로 파일 경로를 넣어주었는데
gdb로 나중에 열어보니 파일경로 끝에 \001이 붙어있었습니다...
처음 rsp값이 0x1이었는데 ni로 한줄한줄보니 oooooong\001 -> ame_is_loooooong\001 ->ell_basic/flag_name_is_loooooong\001
이렇게 저장이 되었습니다. 이게 문자열의 끝을 알려주지 않아 그런건가요??

#pwnable
작성자 정보
답변 1
avatar
bincat
세계수

그럴수도있습니다!
스택에는 기본적으로 null 이 들어있을수도있고 유저가 컨트롤할 수 없는 값이 들어있을수도있습니다!
그래서 맨 처음에 0(null) 을 한번 push 해주면 문자열의 끝을 확실하게 지정할 수 있습니다

2022.03.29. 11:17
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기