Я пытаюсь прочитать содержимое файла, используя сборку x86 в Linux.Вопрос в том, что мы должны поместить в edx
- регистр «разрешений» для sys_open.
Я использовал open()
из C раньше;но не было никакого поля "разрешений".Я пытаюсь прочитать файл принадлежит тому же владельцу исполняемого файла.Права доступа к файлу установлены на 0400
(-r--------
).Я попытался открыть файл с помощью edx
: пусто (0), 0666
и 0400
.Все они возвращают "-13" в eax
, который выглядит как EACCES
.
Пример кода:
mov eax, 0x5; //sys_open
push 0x6362612f //file name in hex, let's say "/abc"
mov ebx, esp; //filename to ebx
xor ecx, ecx; //O_RDONLY
mov edx, 0666o; //permissions in octal for nasm
int 0x80; //call it
Что должно быть edx
, чтобы открыть файл,вообще (или в этом случае только для чтения)?Текущие права доступа к файлу, пустой, произвольный?
Спасибо!