![](https://img-blog.csdnimg.cn/20210302143737819.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux内核的hook技术
文章平均质量分 65
简单聊聊linux内核的hook技术
6月的夕夕
这个作者很懒,什么都没留下…
展开
-
linux内核hook技术之函数地址替换
前言 函数地址替换是一种更为简单、常见的hook方式,比如对security_ops、sys_call_table等结构中的函数进行替换,来完成自己的安全权限控制。 其中security_ops是LSM框架中所使用的,sys_call_table是系统调用表结构。当然了,这些结构目前在内核中都已经是只读数据结构了,如果想直接进行函数替换的话,首先就是考虑解决关闭写保护的问题。在下面的模块例子中,演示了重置cr0寄存器写保护位及其 修改内存页表项属性值两种关闭写保护方式,有兴趣的朋友可对...原创 2021-03-04 18:15:53 · 1958 阅读 · 3 评论 -
linux内核hook技术之跳转指令偏移值
前言 在另一篇博文中提到了指令覆盖和指令注入的hook方式,使用覆盖和注入方式完成内核函数hook,需要有很多的注意事项,而且容易被检测工具检测。这篇博文则聊一下如何通过替换跳转指令偏移值来完成内核函数的hook,这种hook技术也可以称为inline hook。 事先做个准备工作,手头正好有centos 6系列操作系统,还有一个热腾腾刚出锅的vmlinux。通过 gdb vmlinux,所示如下: 如图片所示,sys_open通过call指令调用了do_sys_open...原创 2021-03-02 19:51:07 · 806 阅读 · 3 评论 -
linux内核hook技术之指令覆盖与注入
前言 说到hook,传统意义上,大家都会觉得跟注入和劫持挂钩。在linux内核中,也可以通过指令覆盖和注入的方式进行hook,来完成自己的业务逻辑,实现自己的功能需求。 一部分人喜欢称这种hook技术为inline hook。如何hook 具体hook细节在以下编写的驱动例子程序中给出了,例子中标注了详细的注释,大家可对照着代码查看。 例子程序在centos 6系统上编译并测试通过了,如果换成其他系统,部分代码可能需要进行微调,想要尝试的朋友,自己写个简单的mak...原创 2021-03-02 15:16:58 · 1524 阅读 · 2 评论