Linux内核模块基础知识

 什么是内核模块?

        内核是操作系统的中枢神经系统,控制着它所做的一切,包括管理硬件组件之间的交互和启动必要的 服务。内核在你看到的用户应用程序和运行所有东西的硬件(如 CPU,内存和硬盘驱动器)之间运行。
         Linux 是一个单片内核,可以添加内核模块。因此,可以在内核中添加和删除模块。内核有时需要更新, 这可能需要安装新的设备驱动程序(如视频卡,蓝牙设备或 USB 设备),文件系统驱动程序,甚至系统扩展。 必须将这些驱动程序嵌入到内核中才能完全正常运行。在某些系统中,要添加驱动程序,您必须重建、编 译和重新引导整个内核,但 Linux 能够在不经过整个过程的情况下向内核添加一些模块。这些模块称为可加 载内核模块或 LKM
        LKM 必须能够访问内核的最低级别,这使得它们成为骇客极易攻击的目标。一种称为 rootkit 的特殊类型的恶意软件通常通过这些 LKM 嵌入到操作系统的内核中。如果恶意软件嵌入内核,骇客就可以完全控制操作系统。
        如果骇客可以让 Linux 管理员将新模块加载到内核,那么骇客不仅可以获得对目标系统的控制权,而且因为他们在操作系统的内核级别运行,可以控制目标系统正在运行的进程,端口,服务,硬盘空间以及您 能想到的几乎任何其他内容。
         因此,如果骇客可以成功诱使 Linux 管理员安装其中嵌入了 rootkit 的视频或其他设备驱动程序,则骇客可以完全控制系统和内核。这是一些最阴险的 rootkit 利用 Linux 和其他操作系统的方式。

检查内核版本

了解内核的第一步是检查系统正在运行的内核。至少有两种方法可以做到这一点。首先,我们可以输 入以下内容:
        kali >uname -a
内核通过告诉我们,我们的操作系统正在运行的发行版是 linux kali,内核版本是5.9.1,它构建的架构是 x86_64 架构。它还告诉我们它具有对称多处理(SMP)功能(意味着它可以在具有多个核心或处理器的 机器上运行),并于 2020 10 29 日在 Debian 5.9.1上构建。根据构建中使用的内核和系统中的 CPU,您 的输出可能会有所不同。安装或加载内核驱动程序时可能需要这些信息,因此了解如何获取这些信息非常 有用。
获取这些信息以及其他一些有用信息的另一种方法是对/proc/version 文件使用 cat 命令,如下所示:
kali >cat /proc/version
在这里,你可以看到/proc/version 文件返回了相同的信息。

管理内核模块

        Linux 至少有两种方法来管理内核模块。较旧的方法是使用围绕 insmod suite-insmod 构建的一组命令代表插入模块,用于处理模块。第二种方法,使用 modprobe 命令。在这里,我们使用 insmod 套件中的 lsmod 命令列出内核中已安装的模块:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2660375.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

如何在VSCode搭建ESP-IDF开发ESP32

文章目录 概要安装VScode安装ESP-IDF插件使用官方例程小结 概要 ESP-IDF(Espressif IoT Development Framework) 即乐鑫物联网开发框架,它基于 C/C 语言提供了一个自给自足的 SDK,可为在 Windows、Linux 和 macOS 系统平台上开发 ESP32 应用程序提供工具…

54.网游逆向分析与插件开发-游戏增加自动化助手接口-项目需求与需求拆解

内容来源于:易道云信息技术研究院VIP课 项目需求: 为游戏增加VIP功能-自动化助手。自动化助手做的是首先要说一下背景,对于授权游戏来讲它往往年限都比较老,老游戏和新游戏设计理念是不同的,比如说老游戏基本上在10年…

Ubuntu Desktop 22.04 桌面主题配置

Ubuntu Desktop 22.04 桌面主题配置 使用这么久 Ubuntu Desktop,本着不折腾的原则,简单介绍下自己的桌面主题配置。 安装 tweaks 安装 GNOME Shell 安装 GNOME theme安装 gnome-tweaks & chrome-gnome-shell sudo apt update # 安装 gnome-tweaks…

统信UOS linux下opencv应用编译时的头文件和库文件路径查找设置方法

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 老猿原来进行的C和C开发主要是基于windows环境的,目前要在统信UOS操作系统环境下编译opencv应用程序,其环境设置与windows环境下变化很多,今天就来介绍一下在统…

【Vue3】创建项目的方式

1. 基于 vue-cli 创建 ## 查看vue/cli版本,确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test本质上使用webpack,默认安装以下依赖: 2. 基于 vite 创建 官…

心晴图谱:大学生心理健康数据探秘与画布解读

心晴图谱:大学生心理健康数据探秘与画布解读 1. 引言2. 数据集介绍3. 技术选型4. 分析维度与功能5. 创新点6. 可视化大屏展示7. 结论与展望 当代大学生面临着越来越多的心理健康挑战,而通过对某省一些高校从2018年到2022年的大学生心理健康数据进行深入分…

Spring对bean的管理

一.bean的实例化 1.spring通过反射调用类的无参构造方法 在pom.xml文件中导入坐标&#xff1a; <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.29<…

SEO中的实体:它们是什么以及为什么它们很重要?

从了解搜索历史到区分实体与关键字&#xff0c;真正了解实体是什么&#xff0c;以便获得更有针对性的搜索流量。 关于SEO专业人士应该如何理解&#xff0c;更重要的是&#xff0c;如何利用SEO中的“实体”&#xff0c;存在很多困惑。 我明白这是从哪里来的&#xff0c;尤其是…

BDD - Python Behave 配置文件 behave.ini

BDD - Python Behave 配置文件 behave.ini 引言behave.ini配置参数的类型配置项 behave.ini 应用feature 文件step 文件创建 behave.ini执行 Behave 引言 前面文章 《BDD - Python Behave Runner Script》就是为了每次执行 Behave 时不用手动敲一长串选项&#xff0c;其实还有…

【王爽老师汇编语言】os和计组必备前置知识-学习记录2

1. 应用程序的组成 从汇编语言角度&#xff0c;一个程序分为&#xff1a; 数据段 堆栈段 代码段 扩展段 应用程序从高级语言的角度比如C语言分段&#xff1a; 数据段 代码段 BSS段 栈、堆 我们可以看到一个可执行程序至少包含&#xff1a;代码段数据段BBS段 一般情况下&…

VirtualBox 网络连接配置

这几天为了确认笔记本电脑的ssd磁盘型号&#xff0c;拆开电脑查看了一下&#xff0c;并且拔出来又装回去了&#xff0c;就是这个插拔的动作&#xff0c;导致原本能好好运行的虚拟机&#xff0c;突然启动报错启动不起来了。看了启动日志&#xff0c;显示启动的时候磁盘数据校验出…

Java多线程技术五——单例模式与多线程

1 概述 本章的知识点非常重要。在单例模式与多线程技术相结合的过程中&#xff0c;我们能发现很多以前从未考虑过的问题。这些不良的程序设计如果应用在商业项目中将会带来非常大的麻烦。本章的案例也充分说明&#xff0c;线程与某些技术相结合中&#xff0c;我们要考虑的事情会…

Spring 是如何解决循环依赖问题的方案

文章目录 Spring 是如何解决循环依赖问题的&#xff1f; Spring 是如何解决循环依赖问题的&#xff1f; 我们都知道&#xff0c;如果在代码中&#xff0c;将两个或多个 Bean 互相之间持有对方的引用就会发生循环依赖。循环的依赖将会导致注入死循环。这是 Spring 发生循环依赖…

Linux安装GitLab教程

Linux安装GitLab教程 1、配置yum源 相当于新建一个文件&#xff0c;通过这个文件来安装gitlab vim /etc/yum.repos.d/gitlab-ce.repo 把这些配置粘进去 [gitlab-ce] nameGitlab CE Repository baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gp…

NVIDIA GeForce Experience下载更新失败怎么办?

下载的文件会在C:\ProgramData\NVIDIA Corporation\Downloader这个目录下&#xff0c; 打开名字很长的文件夹&#xff0c;在被删除前手动安装即可。

12.27_黑马数据结构与算法笔记Java(补1)

目录 266 活动选择问题 分析 267 活动选择问题 贪心 268 分数背包问题 贪心 269 0-1 背包问题 贪心 270 斐波那契 动态规划 271 斐波那契 动态规划 降维 272 Bellman Ford 动态规划 分析 273 Bellman Ford 动态规划 实现1 274 Bellman Ford 动态规划 实现2 275 Leetco…

微信小程序开发系列-06事件

什么是事件 事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑层进行处理。事件可以绑定在组件上&#xff0c;当达到触发条件时&#xff0c;就会执行逻辑层中对应的事件处理函数。事件对象可以携带额外信息&#xff0c;如 id, dataset, touches。 事件分类 事…

使用cmake配置matplotlibcpp生成VS项目

https://gitee.com/feboreigns/matplotlibcpp 这篇文章需要一些cmake基础&#xff0c;python基础&#xff0c;visualstudio基础 准备环境 注意如果在VS平台使用必须要手动下载python&#xff0c;不能使用conda里面的&#xff0c;比如3.8版本&#xff0c;因为conda里面没有py…

Understanding Deep Image Representations by Inverting Them(2014)

文章目录 AbstractIntroductionContribution -Summary hh Abstract 从SIFT和视觉词袋到卷积神经网络(cnn)&#xff0c;图像表示几乎是任何图像理解系统的关键组成部分。然而&#xff0c;我们对它们的了解仍然有限。在本文中&#xff0c;我们通过提出以下问题对表征中包含的视觉…

Mybatis行为配置之Ⅱ—结果相关配置项说明

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL 文章目录 专栏精选引言摘要正文autoMappingBehaviorautoMappingU…