Я пишу программу в сборке at & t, которая должна получать информацию от пользователя. Я давно пользуюсь gets
, но хорошо знаю о атаках переполнения буфера. Я хотел бы использовать fgets
, но у меня возникли проблемы с передачей ему файла stdin.
push %rbp
mov %rsp, %rbp
sub $0x20, %rsp
lea -0x20(%rbp), %rdi #Buffer
mov $0x20, %rsi #Size of buffer
mov $0, %rdx #Input stream?
call fgets
leave
ret
Как показано выше, я попытался просто ввести 0, поскольку это дескриптор файла для stdin
. Есть ли способ, которым я могу получить stdin
, не найдя stdio.h
и не компилируя мой код каждый раз, как это ...
gcc test.s stdio.h -o test
Любое альтернативное решение высоко ценится.