一部のルートキット攻撃は、フォーマット リストに新しいバイナリ フォーマットを挿入し、呼び出されるたびにエラー コード ENOEXEC を返す悪意のあるハンドラをカーネルに提供することによって機能します。新しいハンドラはフォーマット リストの先頭に挿入されるため、新しいプロセスが実行されるたびに悪意のあるハンドラが実行されます。リストのサイズは、システムの起動後は一定であり、新しいバイナリ フォーマットがインストールされた場合にのみ変更されます。この攻撃は新しいバイナリ フォーマットを挿入するため、フォーマット リストの長さを変更します。これは記事で読んだことがあります。これがカーネル 3 にも当てはまることを知りたいですか? はいの場合、フォーマットリストの長さを確認するにはどうすればよいですか? カーネル 3.11.4 でこの構造体を見つけました。
/*
* This structuredefines the functions that are used to load the binary formats that
* linux accepts.
*/
struct linux_binfmt {
struct list_head lh;
struct module *module;
int (*load_binary)(struct linux_binprm *);
int (*load_shlib)(struct file *);
int (*core_dump)(struct coredump_params *cprm);
unsigned long min_coredump; /* minimal dump size */
};
lh
参照したリストですかformats list
?