Попытка выдать execve() системный вызов в Linux потрогать файл под названием «Все в порядке»не могу понять этот Segfault
Вот стек:
0xffffd33c: 0x6e69622f 0x756f742f 0x45006863 0x79726576
0xffffd34c: 0x6e696874 0x73692067 0x004b4f20 0x00000000
0xffffd35c: 0xf7ff000a 0x00000001 0x080483a0 0x00000000
0xffffd36c: 0x080483c1 0x08048454 0x00000001 0xffffd394
Это должно быть мало- endian order "/ bin/touch \ 0Everything OK \ 0", за которым следует байт NULL, который, по-видимому, является.
Вот регистры:
eax 0xfffffff2 -14
ecx 0xffffd33c -11460
edx 0x0 0
ebx 0xffffd33c -11460
esp 0xffffd33c 0xffffd33c
EAX был 11 (для execve() Linux) до системного вызова в Int 0x80 вызвал ошибку, которая изменила значение EAX до -14
могу» t выяснить, почему мои указатели (хранятся в ebx, ecx) вызывают ошибку формата с аргументами execve(). Они указывают на одни и те же данные, но это строка с нулевым завершением, за которой следует вторая строка с нулевым завершением, за которой следует указатель NULL, поэтому ее следует рассматривать как только первую строку с помощью ebx an как NULL-указатель с завершенным массивом с помощью ECX.
Спасибо.
ах большое спасибо – gal