Когда я должен сохранить отладочную информацию в модулях ядра?

Выполнение make && make modules_install && make install должен не только создать ядро, но установить изображение ядра (bzImage) и скопировать его в начальную загрузку//, создать initrd и создать запись личинки для обоих.

Если это не команда (команды) и/или синтаксис, который Вы использовали, я рекомендую делать попытку этого процесса. Если это - процесс, за которым Вы следовали, я рекомендую восстановить Ваш initrd с mkinitrd и проверяя, что корневое устройство в конфигурации личинки точно представляет конфигурацию системы.

5
24.06.2012, 23:59
1 ответ

Отладочная информация просто добавляет дополнительную информацию к исполняемому файлу, который помогает при выполнении отладчика, такого как GDB. Это позволяет отладчику воссоздать исходный код от исполняемого файла, чтобы показать Вам, где вещи, такие как segfaults происходят во время времени выполнения.

Если Вы тестируете / взламывающий / то, чтобы заставлять что-то взаимодействовать с модулем затем, Вам нужны они. Во время нормального функционирования они просто занимают место и могут изложить угрозу безопасности на производственной машине. Например, если кто-то врывается в Вашу систему с полномочиями пользователя, они могут использовать отладчик для поиска слабых мест в текущих рабочих модулях для получения корневого доступа.

Это сохранит небольшое количество пространства для удаления их также.

5
27.01.2020, 20:40
  • 1
    @zxcdw проблемы безопасности скорее дезинформировано. Большинство модулей ядра Linux является открытым исходным кодом, поэтому если взломщик хочет испытать вещи, он может сделать это на своей собственной машине. Исключением является драйвер для устройства, которое это не легко эмулировать, и даже затем это - очень незначительное беспокойство, для которого мне нисколько не ясно, что стоимость/преимущество выступает за удаление символов. (Стоимость = не имеющий сообщения отладки, если что-то идет не так, как надо; извлеките выгоду =, у взломщика с длительным некорневым доступом к полю и никаким доступом исходного кода есть немного более легкое время, перепроектируя модуль.) –  Gilles 'SO- stop being evil' 25.06.2012, 02:55
  • 2
    Если что-то идет не так, как надо, хотя Вы всегда можете rmmod тот с отладочной информацией и modprobe один с символами. Возможно, не в редких случаях. Это также делает задание взломщика легче, поскольку могла быть система определенные изменения в модуле. Для разработки модуля я могу согласиться, что они должны быть там, но если она используется на производственной машине, они не должны быть включены. Такой как на веб-сервере или иначе. –  Joe 25.06.2012, 03:30
  • 3
    , с которым я знаком gdb для "нормальных" программ. Если я не использую (k) gdb, символы в модулях ядра какого-либо использования? Я имею в виду, когда модуль ядра отказывает, я все еще получил бы трассировку вызовов? –  Lekensteyn 25.06.2012, 11:47
  • 4

Теги

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