Есть ли способ для модуля ядра найти адреса разделов другого загруженного модуля?

В системе x86 у меня есть модуль ядра Linux («модуль-наблюдатель»), который получает уведомление от ядра каждый раз, когда загружается конкретный модуль ядра («цель»). Практически любой модуль ядра может быть целью. Я использую это в системе приборов , над которой я работаю.

Когда модуль-наблюдатель обрабатывает такое уведомление, по какой-то причине может быть удобно, если бы наблюдатель знал адреса секций ELF загруженного целевого модуля. Есть идеи, как эту информацию можно получить в пространстве ядра?

Конечно, я мог бы, вероятно, получить содержимое соответствующих файлов в / sys / module / / section / в пользовательском пространстве, как только по мере загрузки цели, а затем каким-то образом передать эти данные модулю-наблюдателю, но это слишком неуклюже. Я хотел бы найти способ получить эту информацию прямо в пространстве ядра.

Насколько я видел в исходных кодах загрузчика модулей, он не сохраняет адреса секций в struct module , а просто создает файлы sysfs для секций. Может быть, можно как-то найти объекты ядра, соответствующие этим файлам, и прочитать нужные данные из этих объектов? Или, возможно, использовать другой подход?

8
задан Eugene 21 October 2011 в 14:46
поделиться