Je fais des recherches sur les rootkits et j'ai reçu beaucoup d'avertissements like`set_memory_ * fonctions dans le noyau Linux> = 2.6.25
"BUG: unable to handle kernel paging request at [addr]"
quand j'ai essayé de joindre ma propre fonction à sys_call_table[__NR_read]
, pour Exemple.
Dans les noyaux < = 2.6.25, la fonction change_page_attr()
aidait à changer les attributs de page d'une certaine adresse. Cependant, dans les nouveaux noyaux> = 2.6.28, cette fonction est obsolète et est remplacée par des fonctions set_memory_*
, liées à PAT.
La documentation du noyau Linux n'est pas claire sur l'utilisation des fonctions PAT; J'ai utilisé set_memory_wc()
& set_memory_uc()
pour modifier les autorisations sys_call_table
mais je continue à recevoir le même BUG. Ces fonctions, je suppose, remplacent le vieux change_page_attr()
.
J'ai vu un exemple dans le module i915, et j'ai utilisé des fonctions de la même manière, mais le BUG continue.
Toute aide à ce sujet? Est-ce que je gère mal les adresses de noyau?
Pourquoi doit-on _restore_ après avoir réglé sur un mode autre que l'écriture différée? J'ai également lu dans les docs de Linux que 'set_memory_ [uc | wc | wt]' et 'set_memory_wb' devraient être utilisés par paires pour retourner le mode à writeback après utilisation, mais aucune explication concernant la motivation n'est incluse. – sherrellbc