【问题标题】:Which methods can be used to detect memory overwritten in Linux kernel?哪些方法可用于检测 Linux 内核中被覆盖的内存?
【发布时间】:2013-07-14 06:02:45
【问题描述】:

如果Linux内核或驱动程序中存在缓冲区溢出等内存覆盖代码,则很难调试并找到根本原因。

我知道我可以启用 SLAB 调试来获取一些信息。如果在释放后将某些内容写入slab内存,那么我们将看到警告。但是这种方法有一定的局限性,有时我们仍然无法得到有用的线索。

还有其他内核调试方法可以检测内存覆盖吗?

【问题讨论】:

    标签: linux linux-kernel kernel


    【解决方案1】:

    看看Kmemcheck tool。您可以在内核配置中启用它并重建内核。

    Kmemcheck 可能会显着降低系统速度,但它可以检测到不正确的内存访问,否则很难找到。

    对于 x86_64 架构上的内核 4.1 或更新版本,Kernel Address sanitizer (KASan) 也可能是一个选项。它应该比 Kmemcheck 快得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-08
      • 2010-10-12
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多