Модератор: Модераторы разделов
-
redliner
- Сообщения: 3
- ОС: Gentoo Linux
Сообщение
redliner »
Всем привет!
При вызове mmap(); прога выдает отрицательное число но сам файл открывается и смещение выполняется
Код: Выделить всё
// filename - asciiz
open_file:
mov eax,SYS_open
mov ebx,filename
mov ecx,O_RDWR
int 0x80
cmp eax,0xFFFFF000
ja exit
xchg eax,ebx
mov eax,SYS_lseek // lseek(fd,0,2);
mov ecx,0
mov edx,2
int 0x80
xchg eax,edx
push ebx
push 0
push ebx
push 1
push 3
push edx
push 0
mov eax,SYS_mmap // mmap(0,edx/*file size*/,PROT_READ|PROT_WRITE,MAP_SHARED,ebx/*filedecrypter*/,0);
mov ebx,esp
int 0x80
add esp,byte 24
pop ebx
cmp eax,0xFFFFF000
ja exit
exit:
mov eax,1
xor ebx,ebx
int 0x80
-
Red User
- Сообщения: 229
- ОС: Debian
Сообщение
Red User »
mmap вроде как должен возвращать код ошибки, только со знаком минус. См. errno.h и errno-base.h в /usr/include/asm-generic
А ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
-
Michael
- Сообщения: 92
Сообщение
Michael »
Red User писал(а): ↑02.10.2007 01:01
mmap вроде как должен возвращать код ошибки, только со знаком минус. См. errno.h и errno-base.h в /usr/include/asm-generic
Он возвращает адрес в случае успеха и -1 в случае неудачи. Код ошибки надо в errno смотреть.
-
redliner
- Сообщения: 3
- ОС: Gentoo Linux
Сообщение
redliner »
один вытекающий вопрос
как посмотреть errno?
имхо errno вообще не трогается код ошибки в %eax
но в упорных поисках я не нашел ошибки с кодом номер 13
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z »
Michael писал(а): ↑02.10.2007 04:22
Он возвращает адрес в случае успеха и -1 в случае неудачи. Код ошибки надо в errno смотреть.
Речь идёт о *системном вызове mmap*.
redliner, возвращаемое SYS_mmap значение и есть код ошибки, описание ядерных кодов errno см. в заголовках ядра, указанных выше.
-
Red User
- Сообщения: 229
- ОС: Debian
Сообщение
Red User »
redliner писал(а): ↑02.10.2007 13:02
но в упорных поисках я не нашел ошибки с кодом номер 13
А ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Сообщение
v04bvs »
системные вызовы не трогают errno.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z »
v04bvs, не путаем мух с котлетами, мы не о libc-шной errno говорим. В терминах системных вызовов errno имеет совсем другое значение и смысл.
-
redliner
- Сообщения: 3
- ОС: Gentoo Linux
Сообщение
redliner »
=\
жаль что нет ответа =(