The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"подмена системного вызова execve"
Отправлено perece, 06-Апр-07 20:29 
>(gdb) disas 0xc01099e0
>Dump of assembler code for function sys_execve:
>0xc01099e0 <sys_execve+0>:      push   %ebp
>0xc01099e1 <sys_execve+1>:      mov    %esp,%ebp
>0xc01099e3 <sys_execve+3>:      push   %esi
>.....
>
>(gdb) info functions sys_execve
>All functions matching regular expression "sys_execve":
>
>File arch/i386/kernel/process.c:
>int sys_execve(struct pt_regs);
>
>и объявил я sys_exec правильно.
>но если раскомментировать строчки в init_module cleanup_module
>то после insmod  начинает выдаваться сообщение Segmentation fault.
>
>в чем я неправ?
>на других сист вызовах работает...проверил на sys_chmod  все отлично. долгожданное hello
>появляется в логах.
>
>в чем особенность sys_execve?
в том, что в случае "удачи" возврата из него не происходит. екзекв "раскручивает стэк" для  проведения "зачистки" старого имиджа и после этого формирует начальный стэк нового. в твоем случае в стэке появляется лишний фрейм - от n_execve.
если на ассемблере х86, то "финал" твоего n_execve выглядит как:
call  o_execve
pop   bp
ret
если вместо этого будет просто
jmp   o_execve
то, возможно, работать будет. надо сверять как формируется стэковый фрейм у тебя и у настоящего экзеква.

"чиста на C" этого, боюс, нельзя сделать.

\^P^/

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру