È impossibile rilevare le modifiche del kernel dall'interno del sistema. Qualunque sia il rivelatore di rootkit che usi, il rootkit può essere programmato per mentirti. Se qualcuno controlla il tuo kernel, controlla il tuo sistema, non tu, fine della storia. Anche GMER soffre di questo difetto, è intrinseco nel principio operativo: trova solo rootkit che non sono bravi a nascondersi.
È possibile rilevare le modifiche del kernel dall'esterno. Una tecnologia comune a tale scopo è un TPM , che è un componente hardware. È un po 'più complicato di "controllare la tabella delle chiamate di sistema per le modifiche" perché la tabella delle chiamate di sistema è solo una piccola parte del kernel, una modifica in qualsiasi altro luogo può avere conseguenze di portata simile. TPM funziona eseguendo un'istantanea del sistema di volta in volta e confrontando queste istantanee con un'istantanea di riferimento. Il TPM memorizza solo gli hash, non l'intera immagine di memoria, quindi le istantanee devono corrispondere bit per bit. Il caricamento dei moduli cambia il kernel, quindi è necessario avere un set fisso di moduli e una versione del kernel fissa.
Rilevare una modifica del kernel è utile solo se c'è un posto dove segnalarlo. Il TPM non può dirlo all'utente, perché non ha un'interfaccia utente. Il modo di sfruttare un TPM è quando si utilizza il computer per autenticarsi su un servizio remoto. Il TPM invia una misura del PC e il servizio remoto lo confronta con un valore di riferimento e decide se il PC si trova in uno stato noto o meno. Uno stato sconosciuto potrebbe essere un aggiornamento della versione o un compromesso, il servizio remoto non ha modo di sapere, quindi l'uso di un TPM richiede più infrastruttura per gestire gli aggiornamenti.
Invece di un TPM hardware, è possibile implementare funzionalità simili in un hypervisor. Ciò non richiede hardware speciale, ma ovviamente implica che il sistema venga eseguito su una macchina virtuale.