The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Перехват функции файловой системы."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Перехват функции файловой системы."  +/
Сообщение от Andrew email(??) on 14-Окт-07, 17:27 
Подскажите плиз...

Как перехватить или получить сигнал о вызовах следующих функций.
   open();
   close();
   read();
   write();

   fopen();
   fclose();
   fread();
   fwrite();
И Т.Д.

Thenks...

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Перехват функции файловой системы."  +/
Сообщение от Answer on 14-Окт-07, 18:34 
f* - библиотечные функции, они в свою очередь вызывают функции из первой группы. для перехвата вызова этих функций надо лезть в ядро, написав, допустим модуль с функциями - обертками, подменяющий одноименные системные вызовы (по этому принципу работает много интересного софта, к примеру systrace).
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Перехват функции файловой системы."  +/
Сообщение от jd (??) on 14-Окт-07, 19:09 
Можно воспользоваться механизмом LD_PRELOAD: делаете библиотеку-враппер, в которой реазизуете функции, которые хотите перехватить, при необходимости вызываете из них (в конце) "обычные" обработчики с помощью dlsym(3). Хорошо, если в вашей системе можно сделать что-то вроде dlsym(RTDL_NEXT, "open"). Запускать программу нужно установив переменную среды LD_PRELOAD так, чтобы она указывала на библиотеку. Что-то вроде:

LD_PRELOAD=./mywrapper.so myprog

И будет вам счастье.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Перехват функции файловой системы."  +/
Сообщение от Answer on 14-Окт-07, 19:47 
>Можно воспользоваться механизмом LD_PRELOAD: делаете библиотеку-враппер, в которой реазизуете функции, которые хотите
>перехватить, при необходимости вызываете из них (в конце) "обычные" обработчики с
>помощью dlsym(3). Хорошо, если в вашей системе можно сделать что-то вроде
>dlsym(RTDL_NEXT, "open"). Запускать программу нужно установив переменную среды LD_PRELOAD так, чтобы
>она указывала на библиотеку. Что-то вроде:
>
>LD_PRELOAD=./mywrapper.so myprog
>
>И будет вам счастье.

Вот оно, оказывается, как бывает! :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Перехват функции файловой системы."  +/
Сообщение от niXman (ok) on 09-Авг-09, 14:43 
>>Хорошо, если в вашей системе можно сделать что-то вроде dlsym(RTDL_NEXT, "open"). Запускать программу нужно установив переменную среды LD_PRELOAD так, чтобы она указывала на библиотеку. Что-то вроде:

А в каких системах это поддерживается?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




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

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