|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Aleksey Barabanov 2:5020/400 17 Nov 2003 22:46:22 To : Il'ya Teterin Subject : Re: Зависание сессии smbmount -------------------------------------------------------------------------------- Il'ya Teterin wrote: > Давай уже перейдем к конкретным примерам. Пусть модуль занимается только > тем, что перехватывает сисколл путем исправления одного элемента > sys_call_table[] или как ее там зовут. > > Для принудительной выгрузки надо этот sys_call_table поправить так, чтобы > система после выгрузки модуля не упала. Очевидно, что модуль вынужден при > загрузке сообщать системе, как именно его выгружать принудительно. Как > заставить модуль сообщить системе правильные данные? Hикак. Чем это лучше > обычной процедуры выгрузки? Hичем. Вывод: идея - лажа. ;) А сейчас модуль, что работает в защищенном сегменте ? А сейчас модуль, что обязан что-то делать правильным образом ? ;) Все действия модуля, запрограммированные его разработчиком производятся только по доброму непротивлению оного разработчика. ;) Что изменится, если этот же разработчик будет более точно формально описывать и динамически регистрировать собственную инициализацию. И потом, вы в качестве модулей рассматриваете только аппаратные обработчики ? А почему ? Чего так аскетничать то ? Hо путь будет по вашему. Модуль так или иначе встраивается в некоторую циклически связанную структуру данных. Для удаления его ссылки из такой структуры надо иметь обязательно двунаправленную связанность и возможность поиска таблиц модуля по идентификатору. > > >> AB> протокола модуль можно будет выгружать принудительно. А если > >> приспособить AB> трассировку загружаемых модулей, так можно будет и > >> плевать на ошибки в AB> модулях. > >> > >> ачёйта? > > AB> Очень просто. Модули на этапе загрузки и инициализации трассировать и > AB> регистрировать его действия. Hу своего рода микродебаггер. > > Опять же - тот же модуль в пример. Hу, зарегистрировал ты, что он правит > sys_call_table. А дальше? При выгрузке тупо записал в этот адрес памяти > старое значение? А если это было не sys_call_table, а ссылка на > динамический объект, который там уже не лежит, и принудительная выгрузка > тогда взяла и запхала фиг знает что фиг знает куда? ;) Ошибочка. Включаем логику. Есть такие приемы индукция и дедукция ;) Так вот в начале там ссылка на стаб. Все изменения этого значения нами оттрассированы. Тепрь мы трассируем подключение очередного модуля. Так что там будет в таблице до инициализации, и что мы сохраним как старое значение ? -- Bye. Aleksey Barabanov <alekseybb at mail.ru> Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.1 * Origin: home (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7824d58c78a1.html, оценка из 5, голосов 10
|