![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
cypher |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.4.2007 Репутация: нет Всего: нет |
Здравствуйте!
Нужно отслеживать вызов системной функции fork() (или exit(), kill(), mkdir(), chdir()..). тоесть каждый раз когда вызывается функция fork() делать запись в текстовый файл (тима демона который фиксирует все вызовы функции fork()...). Поиском пользовался ничего не нашол по сабжу. Не пойму даже где копать, может есть средства которые позволяют следить за вызовами функций...? |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
cypher,
есть по крайней мере 2 варианта 1. ptrace() + PTRACE_SYSCALL (трассировка системных сервисов) 2. инжект кода в трассируемый процесс и сплайсинг элементов секции .plt можно еще попробовать покопать valgrind -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
А утилита strace не устроит отца русской демократии?
![]() |
|||
|
||||
Maka6er |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 27.2.2007 Где: Киев Репутация: нет Всего: 3 |
А что за система? Если BSD то это через sysent делается.
|
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 3 Всего: 33 |
Мне как-то нужно было заменить вызовы "open(), close(), read(), write(), ...".
Я писал модуль ядра. Все работало. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
ну и зря ![]() кстати, каким образом ты узнавал адрес sys_call_table? или модуль был под 2.4.x? Это сообщение отредактировал(а) MAKCim - 9.6.2008, 16:11 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
andrew_121 |
|
||||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 3 Всего: 33 |
Почему ?
Да. А в 2.6.х это как-то иначе ? Расскажи плиз... Это сообщение отредактировал(а) andrew_121 - 9.6.2008, 17:38 -------------------- Удалил аккаунт. Прощайте! |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
можно обойтись без модуля ядра ![]() в 2.6.x sys_call_table не экспортируется обходные пути есть, но они не всегда будут работать -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 3 Всего: 33 |
MAKCim
Как ? Можно по подробней...плз. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |