ルートキット
あらゆるルートキット検出プログラムには、それが疑わしいシステム上で動作する限り、それにつきものの制約がある。それは、ルートキットはシステム上の全てのプログラムが頼っているライブラリやツールの多くを修正してしまうプログラムだということである。あるルートキットは動いているカーネルを(Linuxや多くのUNIXライクなOSではローダブルモジュールを、MS Windowsなどではおそらくは仮想デバイスドライバなどを通じて)修正する。ルートキット検出の根本的問題は今動いているオペレーティングシステムが信用できないということにある。言い替えれば、全ての作動中のプロセスの表示やディレクトリの中の全てのファイルのリストの表示の要求といった行為の結果が、元々の設計者が意図したような振舞いであると信用できないということである。
もっとも信頼できる最良のルートキット検出の手段は、感染の疑いのあるコンピュータをシャットダウンして、他のメディアから(例えばレスキューCD-ROMやUSBから)起動してストレージを検査することである。動いていないルートキットはその存在を隠すことができず、ほとんどの確立したアンチウイルスプログラムは(おそらくルートキットによって修正されているはずの)標準的なOSコールと低レベルのクエリーに頼るルートキットを検出可能である。なぜならそれらは信頼性を保っているはずだからである。もし何か違いがあればルートキット感染が想定される。ルートキットは検査が終了するまで動いているプロセスを監視して自らの隠蔽行動を停止することで、ルートキットスキャナーに引っかからない、ステルス機能のないマルウェアを装うことで自らを守ろうとすることもある。