私はルートキットについて調査していますが、`のような警告をたくさん受け取りました。
"BUG: unable to handle kernel paging request at [addr]"
たとえば、自分の関数を にアタッチしようとしたときsys_call_table[__NR_read]
。
カーネル <=2.6.25 では、関数change_page_attr()
は特定のアドレスのページ属性を変更するのに役立ちました。ただし、2.6.28 以上の新しいカーネルでは、この関数は廃止され、set_memory_*
PAT に関連する関数に置き換えられています。
Linux カーネルのドキュメントでは、PAT 関数の使用法が明確ではありません。set_memory_wc()
&を使用set_memory_uc()
してパーミッションを変更しましsys_call_table
たが、同じバグが引き続き発生します。私が推測するその機能は、古いchange_page_attr()
.
i915 モジュールで 1 つの例を見て、同じように関数を使用しましたが、バグは続きます。
それについて何か助けはありますか?カーネルアドレスを間違った方法で処理していますか?