记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

[科普]编写一个简单的可加载内核模块

2013-09-27 13:05
前言:本文主要介绍了LKM的基本概念和如果配置编译环境,编译加载一个简单的LKM。适合linux初学者。 什么是可加载内核模块 可加载内核模块(Loadable Kernel Module,LKM允许在不重编译内核和重启系统的条件下对类Unix系统的系统内核进行修改和扩展.大多数的Unix派生系统,包括Linux,BSD,OSX等都支持这个特性. 本文着重描述编译执行一个”hello world”LKM的过程.相关的代码可以在这里下载.下面的命令和代码都在Ubuntu 11.10和12.10上测试通过了.在其他的Linux发行版上也许需要做一些细微的修改. 编写LKM的基本流程 1, 安装module-assistant包 2, 创建主文件hello.c和Makefile 3, 编译hello.c 4, 将编译好的模块插入到当前内核中 5, 测试完成后移除相关的内核模块 安装内核头文件等准备工作 Debian和Ubuntu都提供了moddule-assistant的包,包括了编写LKM需要的所有包.可以通过一下方式安装: sudo -i apt-get install module-assistant m-a prepare module-assistant做的事情并没有多么高端.它仅仅是一个安装内核源码包的工具.下面的命令也可以安装我们编译需要的l依赖包: sudo apt-get install build-essential linux-headers-$(uname -r) 创建LKM源码文件和Makefile 这是一个hello world的源码…在本文提供的压缩包里有.作用是加载内核模块和卸载内核模块的时候输出一个hello world // Defining __KERNEL__ and MODULE allows us to access kernel-level code not usually available to userspace […]
知识来源: www.freebuf.com/articles/system/13260.html

阅读:94518 | 评论:0 | 标签:系统安全 内核安全 内核科普

想收藏或者和大家分享这篇好文章→复制链接地址

“[科普]编写一个简单的可加载内核模块”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于累土;黑客之术,始于阅读

推广

工具

标签云