Fork me on GitHub

05 2024 档案

摘要:find_sys_call_table 和 kallsyms_lookup_name 都可以用于查找内核符号,但它们的具体作用和使用场景有所不同。以下是两者的详细对比: 1. find_sys_call_table 作用 find_sys_call_table 是一种通过遍历内核内存或者其他方式来手 阅读全文
posted @ 2024-05-29 15:52 yooooooo 阅读(95) 评论(0) 推荐(0) 编辑
摘要:在Linux内核编程中,READ_ONCE 宏用于确保从内存中读取一个变量的值时,编译器不会对这个读取操作进行优化,从而保证了读取操作的原子性。这个宏通常在需要防止编译器优化、多线程或中断上下文中使用,以确保数据的一致性和正确性。 以下是 READ_ONCE 宏的定义及其解释: #define RE 阅读全文
posted @ 2024-05-29 15:21 yooooooo 阅读(305) 评论(0) 推荐(0) 编辑
摘要:1. 页表转换寄存器描述符 1.1,页表/页目录结构 基于前言中的内核配置,内核采用39位虚拟地址,因此可寻址范围为2^39 = 512G,采用(linux 默认为五级页表,另外还有PUD,P4D,由于本文只配置三级,其他两项不予罗列)3级页表结构,分别为: PGD (Page Global Dir 阅读全文
posted @ 2024-05-25 20:25 yooooooo 阅读(430) 评论(0) 推荐(0) 编辑
摘要:下面是在实际工作中遇到的一次内核(5.4.110)访问非法内存地址(空指针)导致出错的现场,在这里记录一下简单的分析流程为以后遇到类似的问题作为参考。 [ 220.619861] Unable to handle kernel NULL pointer dereference at virtual 阅读全文
posted @ 2024-05-20 14:43 yooooooo 阅读(375) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示