Linux及安全实践二——模块

Linux及安全实践二——模块
一、模块的编译、生成、测试、删除
1.编写模块代码
编写:gedit 3.c
745283-20160526101228147-1538179741.png

2.编写Makefile
745283-20160526101239928-2066217946.png

obj-m :这个变量是指定你要声称哪些模块模块的格式为 obj-m := .o
modules-objs :这个变量是说明声称模块modules需要的目标文件 格式要求 -objs :=
KDIR :这是我们正在运行的操作系统内核编译目录。也就是编译模块需要的环境
M= :指定我们源文件的位置
PWD :这是当前工作路径$(shell )是make的一个内置函数。用来执行shell命令。
3.make
745283-20160526101253022-1303362365.png

4.加载、测试模块
745283-20160526101307522-1635746269.png
745283-20160526101315944-448819136.png

5.删除模块
745283-20160526101323428-716182505.png

二、页表
Linux采用了通用的四级页表。
745283-20160526101332100-1948136361.png

1.编写代码
745283-20160526101354553-1807578410.png

2.Makefile
745283-20160526101402553-1074881460.png

3.Make
745283-20160526101410756-1777060738.png

4.找到gedit的进程号
745283-20160526101509553-2051958985.png

5.查看gedit相应地址与相应信息
根据十六进制数8062448找到该进程线性地址。
745283-20160526101522381-435299308.png

6.转换为十进制,加载模块

745283-20160526101535334-589518307.png

7.测试
使用tail 查看kern.log 文件或者dmesg指令(显示开机信息,查看日志)可以看到我们在函数里输出的部分或全部内容。
745283-20160526101658209-1186865575.png

转载于:https://www.cnblogs.com/lxq20135309/p/5530030.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值