作者:张华  发表于: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

最新文章

  1. 使用struct处理二进制
  2. weex逻辑控制
  3. JS-取出字符串中重复次数最多的字符并输出
  4. IOS 应用跳转 (IOS9白名单)
  5. python 数据类型(sequence 序列、dictionary 词典、动态类型)
  6. 读书笔记 effective c++ Item 50 了解何时替换new和delete 是有意义的
  7. 【转】shell学习笔记(二) ——shell变量
  8. 类装载器DexClassLoader (android内核剖析)
  9. 从SVD到推荐系统
  10. 11:vue-cli脚手架
  11. AI---训练集(train set) 验证集(validation set) 测试集(test set)
  12. Django模版语言inclusion_tag的用法。
  13. 关于haproxy多域名证书的配置
  14. 使用Task代替ThreadPool和Thread
  15. JSON—fastJSON
  16. mysql 日期时间类型
  17. cuda cudnn anaconda gcc tensorflow 安装及环境配置
  18. 调试和开发npm模块的方式
  19. Java进阶知识点:不要只会写synchronized - JDK十大并发编程组件总结
  20. 什么是ORM,以及在php上的使用?

热门文章

  1. 【计算机网络】3.2 无连接运输:UDP
  2. GCC编译链接过程
  3. js+flash(as3)实现复制文字内容到剪切板实例
  4. SCOI2013 密码
  5. error trying to exec 'cc1plus': execvp: 没有那个文件或目录
  6. tomcat排错以及优化
  7. PHP导出超大的CSV格式的Excel表方案
  8. win7右键菜单不见解决办法
  9. python第一章计算机基础
  10. webstrom破解-webstrom2018.2.4破解方法(xjl456852原创)