如何防止别人卸载内核模块

1.防卸载内核模块

不论是Windows还是Linux,当我们开发完一个内核模块的时候,内核模块中往往都承担这至关重要的作用。如果别人卸载了内核模块,那就起不到作用了。所以如何防止卸载。

2.Windows防卸载

Windows内核模块防卸载一般两种方法:

  • 1.不写unload函数,很暴力的方法,确实没发卸载,但是自己也卸载不了了,那如果我们自己要升级的话,也卸载不了,是个问题。
  • 2.在内核模块中创建一个device设备文件,然后用户态打开这个device,这个时候当我们卸载的时候,就会提示stop_pending。因为被占用了,所以卸载不掉,当我们自己需要升级的时候,直接关闭刚才打开的device设备文件,就可以卸载掉了。

3.Linux防卸载

Linux上就简单多了。

try_module_get(THIS_MODULE)  //增加本内核模块的引用计数
module_put(THIS_MODULE)     //减少该内核模块的引用计数

增加引用计数,卸载时就会提示in use。当我们自己想卸载的时候,就调用Put,减少引用计数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Linux内核模块简介 1.1 Linux内核模块介绍 Linux内核的整体结构已经非常庞大,而其包含的组件也...
    konishi5202阅读 2,912评论 0 4
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,801评论 0 10
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,893评论 0 5
  • 本文开启 linux 内核 V4L2 框架部分的学习之旅,本文仅先对 V4L2 的框架做一个综述性的概括介绍,然后...
    yellowmax阅读 7,621评论 0 13
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 7,865评论 0 27