Я занимаюсь исследованием руткитов и получил много предупреждений типа `
"BUG: unable to handle kernel paging request at [addr]"
когда я пытался присоединить свою собственную функцию к sys_call_table[__NR_read]
, например.
В ядрах <= 2.6.25, функция <code>change_page_attr() помогла изменить атрибуты страницы определенного адреса. Однако в новых ядрах> = 2.6.28 эта функция устарела и заменена функциями set_memory_*
, относящимися к PAT.
В документации ядра Linux нет ясности относительно использования функций PAT; Я использовал set_memory_wc()
& set_memory_uc()
для изменения разрешений sys_call_table
, но продолжаю получать ту же ошибку. Эти функции, я думаю, заменяют старые change_page_attr()
.
Я видел один пример в модуле i915, и я использовал функции таким же образом, но ошибка продолжается.
Любая помощь по этому поводу? Я неправильно обрабатываю адреса ядра?