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

[116115] Нельзя. [12142] В сертификат зашифровано время действия. Единственный способ продлить его - связаться с эмитентом сертификата и получить новый.[12143]Если вы не хотите заменять ключ [116611]-[116612], вы можете подписать новый запрос тем же ключом, что и старый. Но все равно необходимо заменить текущий [116613]apache.crt[116614] на новый.[116120].
1
04.04.2015, 22:54
2 ответа

Думаю, вы можете использовать / proc / modules . Он содержит информацию обо всех загруженных в настоящее время модулях ядра. Например:

cat /proc/modules | grep i8k

Результатом может быть:

i8k 14696 0 - Live 0xffffffffa03b8000

Где:

  1. Первый столбец содержит имя модуля.
  2. Второй столбец указывает размер памяти модуля в байтах.
  3. В третьем столбце указано, сколько экземпляров модуля загружено в данный момент. Нулевое значение представляет собой выгруженный модуль.
  4. В четвертом столбце указывается, зависит ли модуль от другого модуля, присутствующего для функционирования, и перечисляются эти другие модули.
  5. В пятом столбце указано, в каком состоянии загрузки находится модуль: Активный , Загрузка или Выгрузка .
  6. Базовый адрес памяти для модуля в виртуальном адресном пространстве ядра.

Если вы запустите:

awk '$1 ~ /i8k/ { print $1, $2, $6 }' /proc/modules

Результатом могут быть нужные вам значения:

i8k 14696 0xffffffffa03b8000
3
27.01.2020, 23:20

Размер по/sys

Мне нравится этот вариант, так как он дает только одно значение:

cat /sys/module/<module-name>/coresize

Загрузить адрес наpr_debug

Если вы включите pr_debug, эта информация присутствует, и это может быть полезно, если модуль паникует в init_module.

Подробности на:Как получить адрес модуля ядра, который был вставлен с помощью insmod? | Переполнение стека

2
27.01.2020, 23:20

Теги

Похожие вопросы