kretprobe 和 fexit

kretprobe 孬,跟朋友简单讨论了相关主题,发现 fexit 高尚。

fexit 的把戏在 2020 年中那段走火入魔的时间玩过不少,没想到就是 fexit 的标准,看来多数人觉得正确的思路它就是正确的。

kretprobe 每次调用函数都要执行复杂的带锁操作,这种典型的 Linux kernel 令人不快,解释 fexit 之前,先看另一种不同于 kretprobe 的非 Linux kernel 风格的 return probe 把戏:
在这里插入图片描述
箭头指示执行顺序,一气呵成,不涉及内核数据结构锁操作,比 kretprobe 高尚,在 register 时即可将 int3 handler 和 asm_stub 摆置到位,但 int3 的开销也不小,且比 Linux kernel 的锁风格更非标。

如果 function 的开头是 nop5,它支持 5 字节替换,将 nop5 替换为 call stub,整个流程即:
在这里插入图片描述
同样一气呵成,但没了 int3。只需在 register 时准备好 stub & return handler 并将被 return probe 的函数开头的 nop5 替换成 call stub 即可,运行时几乎没有任何额外开销,这就是 fexit 的原理。

浙江温州皮鞋湿,下雨进水不会胖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/57151.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业如何搭建矩阵内容,才能真正实现目的?

当下,新媒体矩阵营销已成为众多企业的营销选择之一,各企业可以通过新媒体矩阵实现扩大品牌声量、维持用户关系、提高销售业绩等不同的目的。 而不同目的的矩阵,它的内容运营模式会稍有差别,评价体系也会大不相同。 企业在运营某类…

b站视频标题的获取(xpath、jsonpath的一个简单应用)

目录 1.目的2.代码的演示 注:该篇文章为本人原创,由于本人学习有限,若有错误或者笔误或者有问题,欢迎大家进行批评指正,谢谢。 1.目的 在b站大学上,为了更好的写笔记,本人根据学到的Python(即Py…

yum源配置

1. YUM简介 YUM(yellowdong updater modified)是一个功能完善、易于使用的软件维护工具,它可以根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器(YUM软件仓库)下载软件包并安装到Linux操…

Nacos单点部署

文章目录 一、Nacos概述二、部署Nacos(1)容器部署 三、注册服务四、整合外部的Mysql(单节点) 一、Nacos概述 Nacos是什么? Nacos的全称是Dynamic Naming and Configuration Service,是阿里巴巴推出来的一个…

银河麒麟QT连接DM8数据库

1. 安装达梦8 官网下载, 按照官方文档进行安装即可. 2. 安装unixodbc 1> 下载odbc安装包 unixODBC-2.3.7pre.tar.gz 2> 解压 tar -xvf unixODBC-2.3.7pre.tar.gz3> 编译 ./configure -prefix /usr/local make && make install4> 查找配置 odbcinst -j5…

Kubectl 详解

目录 陈述式资源管理方法:项目的生命周期:创建-->发布-->更新-->回滚-->删除声明式管理方法: 陈述式资源管理方法: kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口kubectl 是官方的CL…

内网横向移动—资源约束委派

内网横向移动—资源约束委派 1. 资源约束委派1.1. 基于资源的约束委派的优势1.2. 约束性委派和基于资源的约束性委派配置的差别1.3. 利用条件1.3.1. 什么用户能够修改msDS-AllowedToActOnBehalfOfOtherIdentity属性1.3.2. 将机器加入域的域用户 2. 案例操作2.1. 获取目标信息2.…

以产品经理的角度去讲解原型图---会议OA项目

目录 一.前言 二.原型图 2.1 原型图是什么 3.1 原型图的作用 三.演示讲解 3.1 项目背景 3.2 项目介绍 3.2.1 会议管理(会议的发起,通知) 3.2.2 投票管理(会议的流程重大决策记录) 3.2.3 会议室管理 3.2.4 系统管…

Dockerfile部署golang,docker-compose

使用go镜像打包,运行在容器内 redis和mysql用外部的 项目目录结构 w1go项目: Dockerfile # 这种方式是docker项目加上 本地的mysql和redis环境 # go打包的容器 FROM golang:alpine AS builder# 为我们镜像设置一些必要的环境变量 ENV GO111MODULEon …

python excel 操作

excel文件内容如下: 一、xlrd 读Excel 操作 1、打开Excel文件读取数据 filexlrd.open_workbook(filename)#文件名以及路径,如果路径或者文件名有中文给前面加一个 r 2、常用函数 (1)获取一个sheet工作表 table file.sheets(…

HTTP——八、确认访问用户身份的认证

HTTP 一、何为认证二、BASIC认证BASIC认证的认证步骤 三、DIGEST认证DIGEST认证的认证步骤 四、SSL客户端认证1、SSL 客户端认证的认证步骤2、SSL 客户端认证采用双因素认证3、SSL 客户端认证必要的费用 五、基于表单认证1、认证多半为基于表单认证2、Session 管理及 Cookie 应…

用P2PNet进行大豆计数

文章目录 介绍在大豆数据集上可视化结果环境准备数据集结构数据链接模型训练模型推理代码介绍 这个仓库包含了P2PNet(Rethinking Counting and Localization in Crowds: A Purely Point-Based Framework)在大豆数据集上的pytorch实现。 在大豆数据集上可视化结果 环境准备 …