0

0

可以尝试使用如下几种方案来拦截Linux内核函数

PHPz

PHPz

发布时间:2024-02-15 17:33:31

|

922人浏览过

|

来源于ITcool

转载

可以尝试使用如下几种方案来拦截Linux内核函数:

使用Linux安全API

从最佳实践的角度来说suse linux 下载,我们觉得使用Linux安全API的hook函数是最佳选择,由于这个插口就是因此而设计的。内核代码的关键点包含安全函数调用,这种调用可能造成安全模块安装的拉升。该模块可以研究特定操作的上下文,并决定是容许还是严禁它。不幸的是,LinuxSecurityAPI有两个主要限制:

调用linux内核函数_linux内核调试方法总结_linux调用内核函数

其实内核开发人员对系统是否可以包含多个安全模块有不同的想法linux定时关机命令,而且模块未能动态加载是可以肯定的事实。为了确保系统从一开始就保持安全,安全模块必须是内核的一部份。为此,为了使用Linux安全API,我们须要建立一个订制的Linux内核。

更改系统调用表

因为主要用于由用户应用程序执行的操作,所以我们可以在系统调用级别上实现它。所有Linux系统调用处理程序都储存在sys_call_table表中。修改此表中的值会造成修改系统的行为。为此,我们可以通过保存旧的处理程序值并将自己的处理程序添加到表中来hook系统调用。这些方式也有一些优点和缺点。

主要优点如下:

不过,这些方式也有几个缺点:

技术施行较复杂。其实替换表中的值并不困难调用linux内核函数,但还有一些额外的任务须要个别条件和一些不显著的解决方案:

调用linux内核函数_linux内核调试方法总结_linux调用内核函数

只hook系统调用。因为此方式容许你替换系统调用处理程序,因而它极大地限制了入口点。所有的附加检测都可以在系统调用之前或以后立刻执行,我们只有系统调用参数及其返回值。因而,有时我们可能须要仔细检测进程的访问权限和系统调用参数的有效性。据悉,在个别情况下,须要复制两次用户进程显存会形成额外的开支费用。诸如,当参数通过表针传递时,会有两个副本:一个是我们自己创建的副本,另一个是由原始处理程序创建的副本。

使用Kprobes

Kprobes—一种专为Linux内核跟踪和调试而设计的API。Kprobes准许为任何内核指令以及函数入口和函数返回处理程序安装预处理程序和后处理程序。处理程序可以访问寄存器并可以修改它们。这样,我们就有机会监控文件执行流程并改变它。

调用linux内核函数_linux内核调试方法总结_linux调用内核函数

使用Kprobes跟踪Linux内核函数的主要用处如下:

Kprobes也有缺点:

拼接

一种配置内核函数hooking的精典方式:将函数开头的指令替换为通向自定义处理程序的无条件跳转。原始指令被联通到不同的位置,并在跳回到截取的函数之前执行。为此,两次跳转,就可以将代码拼接成一个函数。此方式的工作方法与kprobes跳转优化的方法相同。使用拼接,也可以获得与使用kprobes相同的结果,但开支更低,而且可以完全控制流程。

使用拼接的优点十分显著:

但是,这些方式有一个主要缺点—技术复杂性。更换函数中的机器代码并不容易。为了使用拼接调用linux内核函数,须要完成以下几项操作:

相对而言,拼接可能是一种十分有用的方式来hookLinux内核函数。但此方式的实现过分复杂。因为考虑到我们自身能力和一些其他诱因,我们暂时不准备采用这些方式,所以将其作为候选方案。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1353

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

704

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

777

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

573

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

300

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

381

2023.07.25

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

17

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
前端Vue3实战【手写vue项目】
前端Vue3实战【手写vue项目】

共9课时 | 1.0万人学习

WordPress中文手册文档
WordPress中文手册文档

共54课时 | 40.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号