自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 linux ptrace 图文详解(九) gdb如何判断被tracee唤醒的原因

前序文章中,讨论了绝大多数 ptrace系统调用 在 gdb 中的使用场景,这些场景中有一个共同点:被调试程序(即:tracee)最终都会给父进程GDB发送SIGCHLD信号,并唤醒GDB的wait系统调用。这其中有一个很重要的点,前序文章中并没有展开详细讲解:GDB被唤醒后,是如何判断自己是被什么事件唤醒的、以及是被哪个调试任务唤醒的,被调试程序发生了什么事情?

2025-05-23 20:53:03 1079

原创 linux ptrace 图文详解(八) gdb跟踪被调试程序的子线程、子进程

本文介绍了gdb调试程序时,如何跟踪被调试程序创建的子进程/子线程。

2025-05-09 22:43:27 714

原创 linux ptrace 图文详解(七) gdb、strace跟踪系统调用

本文介绍了gdb、strace通过ptrace监控被调试程序的所有系统调用的实现原理。

2025-04-25 23:43:16 955

原创 linux ptrace 图文详解(六) gdb单步调试

本文介绍了gdb单步调试的底层实现原理以及代码细节。

2025-04-18 21:52:13 923

原创 linux ptrace 图文详解(五) gdb设置硬断点、观察点

本文详细介绍了armv8中硬断点、观察点的实现原理,以及相关debug寄存器中各字段的含义。

2025-04-04 14:06:19 871

原创 linux ptrace 图文详解(四) gdb设置软断点

本文介绍了gdb中软断点的实现原理,以及软断点触发后内核的处理逻辑。

2025-03-29 16:04:35 812 2

原创 linux ptrace 图文详解(三) PTRACE_ATTACH 跟踪程序

本文讲述了gdb attach的底层实现原理。

2025-03-22 09:01:54 815

原创 linux ptrace 图文详解(二) PTRACE_TRACEME 跟踪程序

本文介绍了gdb加载被调试程序进行调试运行的底层实现原理:PTRACE_TRACEME 的实现细节。

2025-03-14 23:56:26 1316

原创 linux ptrace 图文详解(一)基础介绍

ptrace 是 linux内核 提供的一个系统调用,并非一个标准的posix接口,ptrace 主要用于进程跟踪和调试。它运行一个用户态进程(通常称为跟踪器, Tracer)控制和监视另一个进程(称为被调试进程, Tracee)的执行。ptrace是许多调试跟踪工具(如:GDB、strace 等)的 “基座”,其函数原型如下:用于标识一个需要执行的操作;标识目标线程ID一个内存地址和附加信息,其语义因选择的操作而不同;

2025-03-08 14:09:02 1392

原创 ARM Generic Timer

6.3.1,架构:arm64)

2025-02-22 20:41:23 887

原创 Linux uprobe 图文详解(四)uretprobe 针对 longjmp/setjmp 的处理

本文介绍了 setjmp/longjmp 的实现原理、使用陷阱,以及uretprobe中针对 longjmp导致程序流改变 后的相应处理细节!

2025-02-15 12:05:49 617

原创 Linux uprobe 图文详解(三)fork/spawn/exec针对uprobe的处理

在前面两篇文章中,详细介绍了 uprobe、uretprobe 的实现原理。本文将针对 fork、spawn、exec 系统调用中对uprobe的相关处理进行介绍。我们知道,uprobe/uretprobe可以对用户态程序进行实时打桩进行探测,而被打桩的用户态程序,在执行的过程中有可能会调用到 fork、spawn、exec 这一系列系统调用。这些场景下,同样需要针对uprobe进行相关处理。

2025-02-08 23:16:46 652

原创 Linux uprobe 图文详解(二)uretprobe实现原理

上篇文章中介绍了uprobe的实现原理,本篇将继续讲述uretprobe的实现原理。uretprobe是一种基于uprobe的函数级别探测技术,用于探测用户态程序某个具体函数的入口点、返回点。在函数的入口、返回时,会调用响应的钩子函数,该技术一般用于获取:函数运行时间函数返回值等信息。

2025-01-25 21:05:54 862

原创 Linux uprobe 图文详解(一)uprobe实现原理

本文详细介绍了arm64下uprobe的详细实现原理!

2025-01-18 09:32:04 1225

原创 Linux rmap反向映射 实现原理 图文详解 【硬核干货】

本文结合源码、图文,深度剖析了 linux rmap 反向映射技术的底层实现原理。

2025-01-12 16:36:01 1092

原创 Linux SPARSEMEM_VMEMMAP 内存模型

本文阐述了linux内核如果实现page对象的管理、以及 page虚拟地址 与 物理内存 之间的转换方式

2024-12-14 23:19:00 330

原创 微内核 ChCore IPC 图文详解

图文详解ChCore微内核的IPC实现机制

2024-12-14 22:39:36 1032

原创 【原创】Linux kprobe 实现原理 图文详解 (四) 指令替换、cpu stopper

本文主要介绍kprobe指令替换的细节,并介绍cpu stopper机制的实现原理

2024-11-06 13:20:37 1388

原创 【原创】Linux kprobe 实现原理 图文详解 (三) kprobe跳转优化

图文详细介绍kprobe跳转优化的底层实现原理

2024-11-05 14:41:32 720

原创 【原创】Linux kprobe 实现原理 图文详解 (二) kretprobe实现原理

目录一、kretprobe 基本介绍二、kretprobe 使用示例三、kretprobe 实现原理四、具体代码(代码:linux 6.3.1,架构:arm64)One look is worth a thousand words. —— Tess Flanders一、kretprobe 基本介绍Kretprobe是一种基于Kprobe的探测技术,用于探测内核函数的入口点、返回点。在这两处可以调用用户注册的钩子函数,该技术一般用于获取:函数运行时间、函数返回

2024-11-04 13:27:37 2000

原创 【原创】Linux kprobe 实现原理 图文详解 (一) kprobe实现原理

图文详解 linux kprobe 底层实现原理

2024-11-03 11:03:35 1712 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除