
Vasiliy
29.09.2018
14:35:21
сразу сигфолт
Ага, ты buffer в '.text' объявил, туда нельзя писать обычно

Remald
29.09.2018
14:35:45
нет, ошибка похоже не в этом
потому что объявления я в первую очередь переделал под то что увидел
и это не помогло

Google

Remald
29.09.2018
14:36:15
кажется я нашел что вызывает ошибку, ща

Vasiliy
29.09.2018
14:38:03
У меня сегфолтится именно запись в буф
Перекинул в bss - перестал сегфолтится там, начал на ret :)
А, на leave
Я пролог не написал

Remald
29.09.2018
14:43:10
pushq %rbp
movq %rsp, %rbp
movq $buffer, %rsi
movq $printfstr, %rdi
movq $0, %rax
call scanf
addq $8*2, %rsp

Vasiliy
29.09.2018
14:43:14
Это рабртает

Remald
29.09.2018
14:43:18
вот рабочий код
странно
у меня не работает без
pushq %rbp
movq %rsp, %rbp

Vasiliy
29.09.2018
14:45:29
А где именно сегфолтится?

GluckMaker
29.09.2018
14:45:41
Ухххх...

Google

Vasiliy
29.09.2018
14:45:54
Точно в scanf?

Remald
29.09.2018
14:46:09
да
вернее... как точно определить?
если убрать сканф, то работает

Vasiliy
29.09.2018
14:46:49
Gdb в помощь

GluckMaker
29.09.2018
14:47:23

Remald
29.09.2018
14:48:01
вот единственное
что нужно
щас в gdb запущу
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7a7594a in __GI__IO_vfscanf () from /lib64/libc.so.6

Vasiliy
29.09.2018
14:50:14

Remald
29.09.2018
14:50:41
ой дв

Морковочка
29.09.2018
14:50:57
буду ездить на комфорт+
Теперь хоть ясно из-за кого в регионах говорят что москали совсем зажрались.
Безработный москвич
@
Такси комфорт+

Remald
29.09.2018
14:51:10

Vasiliy
29.09.2018
14:51:54

GluckMaker
29.09.2018
14:52:26

Remald
29.09.2018
14:52:45
x/8i $pc
=> 0x7ffff7a7594a <__GI__IO_vfscanf+138>: movaps %xmm1,-0x600(%rbp)
0x7ffff7a75951 <__GI__IO_vfscanf+145>: mov %rax,-0x598(%rbp)
0x7ffff7a75958 <__GI__IO_vfscanf+152>: mov 0xc0(%rdi),%eax
0x7ffff7a7595e <__GI__IO_vfscanf+158>: test %eax,%eax
0x7ffff7a75960 <__GI__IO_vfscanf+160>: jne 0x7ffff7a75c48 <__GI__IO_vfscanf+904>
0x7ffff7a75966 <__GI__IO_vfscanf+166>: movl $0xffffffff,0xc0(%rdi)
0x7ffff7a75970 <__GI__IO_vfscanf+176>: mov 0x0(%r13),%eax
0x7ffff7a75974 <__GI__IO_vfscanf+180>: test $0x4,%al

Vasiliy
29.09.2018
14:53:09
O_o

Catethysis
29.09.2018
14:53:15

Google

Remald
29.09.2018
14:53:27

Catethysis
29.09.2018
14:56:07
охуеть
мой водила пошёл пиздить другого водилу

Vasiliy
29.09.2018
14:56:51

stanislav
29.09.2018
14:56:59
Кто победит, тот повезет тебя

Vasiliy
29.09.2018
14:57:06

Catethysis
29.09.2018
14:57:18
Снимай
его не хватило надолго, уже едем дальше

Remald
29.09.2018
14:57:58

stanislav
29.09.2018
14:58:18
Когда-нибудь москва настолько уйдет в отрыв от мухосраней, что люди из москвы будут снимать передачи типа в мире животных про регионы

Vasiliy
29.09.2018
14:58:24

Alexander
29.09.2018
14:59:48

Catethysis
29.09.2018
15:00:01
голосом Дроздова: "люди в регионах любят странные звуки, которые они называют реп"

stanislav
29.09.2018
15:00:31

Alexander
29.09.2018
15:00:41

stanislav
29.09.2018
15:00:42

Catethysis
29.09.2018
15:02:56
мне особенно запомнилась строчка "я всем даю, кому-то в долг, кому-то в рот"

Remald
29.09.2018
15:03:59

Catethysis
29.09.2018
15:04:00
высокое искусство!

Remald
29.09.2018
15:04:05
а у меня вот это крешится

Google

Remald
29.09.2018
15:04:16
твоя программа фактически точь-в-точь

Vasiliy
29.09.2018
15:04:19
Хмм

GluckMaker
29.09.2018
15:04:28

stanislav
29.09.2018
15:04:53
Как в планете обезьян
Фурри будут фотографировать дерущихся людей

Remald
29.09.2018
15:05:28
так не крешится. Одной строчкой отличается

Anastasia
29.09.2018
15:06:37

Remald
29.09.2018
15:07:03
pushq %rax
а вот так два раза читает!
и крешится потом
чертвозьми, сканф видимо что-то читает из стека

Vasiliy
29.09.2018
15:07:56
Хотя и не должен :/

Remald
29.09.2018
15:11:30
и ему там нужен адрес текущего кадра стека

Vasiliy
29.09.2018
15:11:51
Ну так сам бы и взял

stanislav
29.09.2018
15:12:20
Кокой няшный заяц

Vasiliy
29.09.2018
15:13:27

Remald
29.09.2018
15:14:09
glibc-common-2.27-32.fc28.x86_64
gcc версия 8.1.1 20180712 (Red Hat 8.1.1-5) (GCC)

Google

Remald
29.09.2018
15:26:10
еще вариант рабочего кода

Солдатик
29.09.2018
15:26:25
Мяууу

Remald
29.09.2018
15:26:33
просто двигаем указатель стека на 8 туда и обратно

Alexander
29.09.2018
15:32:05
медведи не мяукают!

Remald
29.09.2018
15:32:17
если сдвинуть на 16 не работает, только на 8. Для чего это?

Vasiliy
29.09.2018
15:32:40
Это оно, выравнивание стека

Remald
29.09.2018
15:35:48

Vasiliy
29.09.2018
15:36:34
Должно быть выровнено по 16, 8 + 8 на адрес возврата

Remald
29.09.2018
15:36:36
72 работает

Vasiliy
29.09.2018
15:37:13
72 = 8 (mod 16)

Remald
29.09.2018
15:37:18
24 работает
тьфу блин
нихрена чета не пойму
запутался

Vasiliy
29.09.2018
15:40:00
http://www.x86-64.org/documentation.html
По идее, но сейчас не открывается

Remald
29.09.2018
15:46:31
да, я перепутал