Kernel Live-patching (by quqi99)
2024-09-08 16:10:56
作者:张华 发表于:2016-02-27
版权声明:能够随意转载。转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
( http://blog.csdn.net/quqi99 )
GCC 4.6的mfentry特性支持使用ftrace在内核函数前加入一个勾子函数(可使用gcc -pg -mfentry test.c; objdump -d ./a.out命令确认),这个Kernel Live-pathing功能便是在内核未执行这个函数之前将函数地址替换掉。
Live-patching的数据结构见[1]. 打Live-patching的过程便是依据这个数据结构写模块动态插入,样例见[2]. kpatch是一个帮助动态地将一个patch生成这样的模块的工具。用法见[3].
[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/livepatch.h
[2] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/samples/livepatch/livepatch-sample.c
[3] http://chrisarges.net/2015/09/21/livepatch-on-ubuntu.html
最新文章
- 使用struct处理二进制
- weex逻辑控制
- JS-取出字符串中重复次数最多的字符并输出
- IOS 应用跳转 (IOS9白名单)
- python 数据类型(sequence 序列、dictionary 词典、动态类型)
- 读书笔记 effective c++ Item 50 了解何时替换new和delete 是有意义的
- 【转】shell学习笔记(二) ——shell变量
- 类装载器DexClassLoader (android内核剖析)
- 从SVD到推荐系统
- 11:vue-cli脚手架
- AI---训练集(train set) 验证集(validation set) 测试集(test set)
- Django模版语言inclusion_tag的用法。
- 关于haproxy多域名证书的配置
- 使用Task代替ThreadPool和Thread
- JSON—fastJSON
- mysql 日期时间类型
- cuda cudnn anaconda gcc tensorflow 安装及环境配置
- 调试和开发npm模块的方式
- Java进阶知识点:不要只会写synchronized - JDK十大并发编程组件总结
- 什么是ORM,以及在php上的使用?