Я пытаюсь найти адресное пространство ядра, в котором мой загружаемый модуль ядра перемещается с помощью insmod.Поиск адреса ядра загружаемого модуля ядра
Я узнал, что с помощью переключателей -m, -O во время установки модуля мы можем видеть только таблицу символов и адреса секций исполняемого файла с точки зрения модуля, а не их перемещенные адреса, поскольку этот процесс перемещения выполняется, когда мы делаем insmod.
Может ли кто-нибудь сказать, как найти перемещенный адрес модуля в ядре-памяти, то есть адрес, связанный в ядре, где находится загруженный модуль?
Спасибо!
P.S Обратите внимание, что я использую ядро Linux Redhat 2.4, в котором список/proc/modules не отображает виртуальные адреса загруженных модулей.
Hi @tian_yufeng, спасибо! Однако я использую ядро Linux Redhat 2.4, в котором список/proc/modules не отображает виртуальный адрес, отредактированный в моем вопросе. Вы знаете, как получить адрес ядра загруженных модулей в этом ядре 2.4? – freax
2.4 Ядро - это немного. Я думаю, что изменения кода необходимы для поддержки функции, которую вы хотите. Можете ли вы рассказать мне подробную версию вашего ядра? Поэтому я могу загрузить его, чтобы иметь чек. –
Я использую Redhat 2.4.20-24.7 kernel Обнаружили адреса модулей с помощью указателя __this_module.next, который, я считаю, является виртуальным. Можете ли вы рассказать мне, как конвертировать эти виртуальные адреса в физические адреса? Благодаря! – freax