Linux内核调试技术——kprobe使用与实现
https://blog.youkuaiyun.com/luckyapple1028/article/details/52972315
Linux内核调试技术——kretprobe使用与实现
https://blog.youkuaiyun.com/luckyapple1028/article/details/54782659
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
100+累计阅读
167平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄22年
Linux内核调试技术——kprobe使用与实现
https://blog.youkuaiyun.com/luckyapple1028/article/details/52972315
Linux内核调试技术——kretprobe使用与实现
https://blog.youkuaiyun.com/luckyapple1028/article/details/54782659
【Linux】BCC 工具编写
【Linux】BCC 工具编写 本实验参照该实验手册:linux-tracing-workshop 一、 setuidsnoop 查看 killsnoop.py, 这是一个简单的基于kprobe的工具,可将kprobe和kretprobe附加到该sys_kill函数. 在Enter探针中,记录了有关终止信号和目标进程的数据,在Return探针中,记录了操作结果,并将自定义结构提交给用户空间以进行显...
linux kprobe rootkit学习
介绍 《linux二进制分析》中提到了使用kprobe来写内核rootkit,还给出了一个简单的源码实现,这里看一下他的源码 kprobe kprobe的介绍可以看下面这几篇文章 介绍:https://www.cnblogs.com/honpey/p/4575928.html 原理:https://www.cnblogs.com/honpey/p/4575902.html 用...
Go+eBPF kprobe 禁止运行指定程序
本文详细介绍了如何使用Go语言结合eBPF技术,通过kprobe机制拦截Linux系统调用execve来禁止指定程序的运行。首先解释了项目背景与应用场景,如防止服务器重启、未经授权的文件下载等。接着深入探讨了实现原理,包括kprobe的工作方式和如何利用它监听execve调用,以及使用bpf_override_return API修改函数返回值以阻止程序执行。
kprobe学习记录(insn/aggr/trampoline/XOL/opcode)
本文解析了Linux内核中kprobe机制的核心实现原理。重点分析了kprobe结构体中的三个关键字段:addr(符号地址)、opcode(原始指令备份)和ainsn(动态执行上下文),以及hlist和list分别处理哈希冲突和同地址多探测的功能。同时解释了常见缩写:aggr(聚合)、insn(指令)和XOL(脱机执行)。最后对比了ARM64架构下三种指令探测状态:INSN_REJECTED(不可探测)、INSN_GOOD_NO_SLOT(可探测但无需槽页)和INSN_GOOD(需槽页探测),并总结了各自的
eBPF示例:x86-64平台上的kprobe
讲解 libbpf-bootstrap 中 kprobe 在x86-64平台上的示例代码; 重点讲: BPF_KPROBE 宏展开; 低版本内核,不支持CO-RE,如何重新实现kprobe示例功能;
通过Ftrace使用kprobe技术
Linux内核kprobe调试技术分析摘要 本文介绍了Linux内核5.10版本中的kprobe调试技术,这是一种轻量级的内核函数跟踪方法。kprobe允许动态插入探测点,收集函数参数、局部变量和执行时间等信息。文章重点讲解了基于ftrace的kprobe使用方法,包括配置选项、事件节点操作和具体使用示例。详细说明了kprobe事件添加的语法格式,包括函数探测(p)、返回探测(r)的参数设置方法,以及寄存器、内存地址、栈空间等数据的获取方式。通过echo命令演示了如何添加sys_openat2等函数的探测点
Linux 下的一个全新的性能测量和调式诊断工具 Systemtap,第 1 部分: kprobe
http://www.ibm.com/developerworks/cn/linux/l-cn-systemtap1/index.html kprobe 的原理、编程接口、局限性和使用注意事项 杨 燚 (yang.y.yi@gmail.com), 计算机科学硕士, Intel 简介: 本系列文章详细地介绍了一个Linux下的全新的调式、诊断和性能测量工具Systemtap和它所依
科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx
科技中介服务机构想要提升服务效率,需要哪些数智工具支持?
硬核!使用 eBPF kprobe 高性能解码 HTTP2 压缩头
本文介绍了 DeepFlow 新增的基于 eBPF kprobe 的 HTTP2/gRPC 压缩头部高性能解码能力。针对 HTTP2 协议使用 HPACK 算法压缩头部导致难以通过内核探针直接获取字段的问题,DeepFlow 通过自动学习通信双方的动态压缩字典,实现了无需依赖 uprobe 即可准确还原压缩头部。该方案不仅降低了对多语言应用的适配成本,还显著减少了资源开销,并在性能压测中展示出更低的 CPU 与内存占用。同时,该能力也支持 cBPF 采集的流量,兼容低版本内核环境。
MT6816磁编码器在无人机电调中的实战应用:从选型到调试全记录
本文详细介绍了MT6816磁编码器在无人机电调系统中的实战应用,涵盖选型、硬件集成、软件配置到飞行测试的全流程。通过对比霍尔传感器和光电编码器,突出MT6816在角度分辨率、安装公差和抗振动能力等方面的优势,为无人机动力系统提供高精度控制解决方案。
电压电流双闭环PFC单相PWM整流
电压电流双闭环PFC单相整流。仿真及代码
关于Linux内核学习的思考
学内核方法的一些思考
CST电子枪仿真实战:从零搭建粒子追踪模型到磁场聚焦优化
本文提供了一份CST电子枪仿真实战指南,详细讲解了从零开始搭建粒子追踪模型的全过程。内容涵盖项目初始化、Track Solver求解器基础、几何建模、粒子源定义,并重点介绍了如何通过引入和优化静磁场(如聚焦线圈配置)来实现电子束的聚焦,帮助工程师高效预测和优化束流品质。
2024年Linux最全Linux 追踪技术 ftrace的使用(二)_ftrace跟踪线程,小白也能看明白
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以点击这里获取!一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长! echo do_nanosleep > set_graph_function echo do_nanosleep > set_graph_function e
AndroidKiller之APK 编译失败,无法继续下一步签名【BUG解决】【App反向解析】
文章目录项目场景:问题描述原因分析:解决方案:BUG解决 项目场景: AndroidKiller: 在反向解析APP包时报错:APK 编译失败,无法继续下一步签名。 网上很多方法都是无效的哈,我追究原因发现,这个bug的出现大部分情况都是因为Apktool的问题。 此方法:百分之百解决此bug! 错误如下: 问题描述 APK 编译失败,无法继续下一步签名! 原因分析: Apktool版本不适配的问题,现在的技术更新换代太快,我们安装AndroidKiller的时候,有时候不是官方渠道的话,他的版本是非常
短距激光雷达专业讲解:定义、架构、技术路线与选型逻辑
短距激光雷达,通常指有效探测距离不大于 50 米的激光雷达产品。它主要服务于服务机器人、扫地机器人、AGV/AMR、无人机、智能手机、AR/VR、工业安全等中近距感知场景。它与车载中长距激光雷达的最大区别,不是“探测距离短一点”,而是整套工程目标不同。短距激光雷达的核心诉求是:小体积、低成本、高帧率、强抗光、嵌入式集成。单价从百元级扫地机模组,到数千元级工业 3D 雷达不等。一句话概括:中长距车载激光雷达追求远距离、高可靠、车规寿命;
Good links for working with Linux
6. 30 Linux System Monitoring Tools Every SysAdmin Should Know https://www.cyberciti.biz/tips/top-linux-monitoring-tools.html 5. kprobe/ftrace/tracepoint/trace event https://www.ibm.com/developerw...
泛微表单添加自定义按钮
泛微表单添加自定义按钮
Linux kprobe的使用
Linux kprobe的简单使用
FPGA信号处理系列文章——分数倍插值抽取滤波器(一)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA信号处理系列文章——分数倍插值抽取滤波器(一)前言信号流matlab模型频谱示意图分析总结 前言 变采样率滤波器不仅仅存在整数倍插值和整数倍抽取的情况,还会存在分数倍插值抽取的情况。那这种情况下要怎么处理呢 信号流 分数倍插值抽取滤波器的信号流是什么?信号先进行插值,再进行FIR滤波,最后进行抽取 matlab模型 %signal 定点化数据输入 coeff_val_fir = importdata('fir.coe'); si
python:实现矩阵SVD分解(附完整源码)
python:实现矩阵SVD分解(附完整源码)
驱动练习DriverPractice
本文简要分析了GitHub上的Linux内核驱动实践项目,指出其部分内容已过时(如设备创建方式)。梳理了几个关键知识点:1)file结构体的private_data指针应使用kmalloc分配而非全局数组;2)Kprobe动态追踪技术的基本用法;3)读写自旋锁(rwlock_t)与普通自旋锁、互斥锁的特性对比;4)poll机制实现多路复用;5)现代驱动框架采用回调函数结构。文章认为该项目适合入门学习,但建议选择性阅读,重点关注中断处理等核心机制。
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
ftrace,kprobe,tracepoint 入门
调试工具在开发过程中是必不可少的,特别是在定位 bug, 分析性能瓶颈的时候,调试工具可以给我们很大的帮助。在使用 c/c++ 做应用开发时,gdb 是我们经常使用的调试工具,在使用 gdb 时, 我们可以设置断点,查看调用栈,单步执行,修改或查看变量等。调试工具可以帮助我们直观地观察到软件的运行过程,进而使我们快速熟悉一个新的软件。比如在工作中,想要了解已有软件的架构,只靠看代码是很难了解透彻的,通过日志和调试工具可以提高学习效率。
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
深入ftrace kprobe原理解析
至此,我们知道Kprobe实现的本质是breakpoint和single-step的结合,这一点和大多数调试工具一样,比如kgdb/gdb。当 kprobe 被注册后,内核会将对应地址的指令进行拷贝并替换为断点指令(比如 X86 中的int 3)随后当内核执行到对应地址时,中断会被触发从而执行流程会被重定向到我们注册的函数当对应地址的原始指令执行完后,内核会再次执行从而实现指令级别的内核动态监控。也就是说,kprobe 不仅可以跟踪任意带有符号的内核函数,也可以跟踪函数中间的任意指令。
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
kprobe总结
kprobe原理相关api版本依赖架构依赖测试用例调试技巧kernel 原文。
ftrace kprobe调试
内核调试一般可以通过printk打印,这种方式需要重新编译内核,或者模块,如果编译内核还要重启设备才能生效。kprobe是一种内核调试方式,可以在内核执行代码位置中断,并执行我们插入的代码。同时内核提供了另一套接口 kprobe-trace,这个接口的优点是通过proc接口操作,不需要写代码,适合做一些临时的debug打印。
335
2191
5333
1万+

被折叠的 条评论
为什么被折叠?



