我能找到所有运行的内核模块,即使它们是隐藏的吗?

时间:2018-02-19 15:22:25

标签: c linux-kernel kernel-module rootkit

我开始开发内核模块,我想知道所有方法都知道哪些模块正在运行以便删除它们(包括它们隐藏的模块)。

E.g。以下模块有两行以隐藏他。 (这是典型的rootkit开发技巧)

#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>

MODULE_LICENSE("GPL");
int example_init(void);
void example_exit(void);
module_init(example_init);
module_exit(example_exit);

int example_init(void) {
    list_del_init(&__this_module.list);         // Deletes entry from list and reinitialize it
    kobject_del(&THIS_MODULE->mkobj.kobj);      // Unlink kobject from hierarchy 
    printk("Example: module loaded\n");
    return 0;
}

void example_exit(void) {
   printk("Example: module removed\n");
}

加载模块时,您可以使用dmesg,lsmod,modinfo,modprobe,/ proc / modules,/ sys / module或/ proc / kallsyms

查看信息

我的问题是,是否存在了解(并删除)此模块的方法?很明显,rmmod不起作用,因为这个模块没有出现在/ proc / modules列表中。

0 个答案:

没有答案