通过隐藏我的意思是从内核模块列表中删除自己的LKM.
如果是这样,我应该期待什么样的结构,或者我应该读什么文件?
解决方法 在@Eugene之后,我找到了一种直接读取内核内存以找到所谓的不那么聪明的隐藏模块的方法:只需从procfs透视图和sysfs透视图中比较模块:static int detect_hIDden_mod_init(voID){ char *procfs_modules[MAX_MODulE_SIZE]; char *sysfs_modules[MAX_MODulE_SIZE]; int proc_module_index = 0,sys_module_index = 0; struct module *mod; struct List_head *p; // get modules from procfs perspective List_for_each(p,&__this_module.List){ mod = List_entry(p,struct module,List); procfs_modules[proc_module_index++] = mod->name; } // get modules from sysfs perspective struct kobject *kobj; struct kset *kset = __this_module.mkobj.kobj.kset; List_for_each(p,&kset->List) { kobj = container_of(p,struct kobject,entry); sysfs_modules[sys_module_index++] = kobj->k_name; } //compare the procfs_modules and sysfs_modules ...}
实际上,它可以检测大多数当前模块隐藏的rootkit,但正如Eugene所说,“一个聪明的rootkit也可能试图隐藏这些数据”.所以这不是一个完美的方式.
总结以上是内存溢出为你收集整理的linux – 通过直接读取内核内存来删除隐藏的内核模块?全部内容,希望文章能够帮你解决linux – 通过直接读取内核内存来删除隐藏的内核模块?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)