美文网首页
Linux内核调试-代码段设置为只读

Linux内核调试-代码段设置为只读

作者: 吴丹_89fc | 来源:发表于2021-03-13 10:48 被阅读0次

使用场景

有时候设备死机的直接原因是代码段被改写,导致指令异常,而这种情况常见的SLUB DEBUG、kasan等内存检测机制是无法检测到的。可以尝试将代码段设置为只读,这样就在改写代码段的时候直接触发异常,收集到真正的死机点。

使用方法

在ARMv7的平台下,可以开启内核的以下配置项,将代码段变成只读

  • CONFIG_ARM_KERNMEM_PERMS=y:将内核代码段设置为"只读+可执行"
  • CONFIG_DEBUG_RODATA=y:是CONFIG_ARM_KERNMEM_PERMS子选项,作为默认值
  • CONFIG_DEBUG_SET_MODULE_RONX=y:将内核模块地址段设置为"只读+可执行"
  • CONFIG_ARM_PTDUMP=y:打印页表布局,还需要修订dump接口
  • CONFIG_DEBUG_PAGEALLOC=y:将释放内存从页表中移除,来检测后使用,原来已开启;
  • CONFIG_PAGE_POISONING=y:

实际案例

相关文章

网友评论

      本文标题:Linux内核调试-代码段设置为只读

      本文链接:https://www.haomeiwen.com/subject/dscxcltx.html