Spaghettifying DRAM:解锁 CPU 所有秘密

Spaghettifying DRAM:解锁 CPU 所有秘密

这个项目揭示了如何通过操纵 DRAM 控制器,绕过 CPU 的所有内存保护机制。通过修改 MCT/DCT 层的地址转换,我们可以将物理地址“意大利面化”,从而访问 PSP、C6、微码和 SMM 等通常对内核不可见的受保护区域。利用 GF(2) 线性映射特性,即使在没有完整文档的情况下,也能通过线性代数重建被混淆的内存视图。整个过程只需几行汇编代码,在毫秒级时间内完成地址重映射与还原,让系统毫发无损地暴露所有隐藏数据。

物理地址其实更像是一种建议,而非不可更改的规则。
  1. MattSteelblade

    我已经迫不及待想看配套的 Black Hat 演讲了。Christopher Domas 是我有史以来最喜欢的黑客之一。他讲解自己的工作简直太棒了。他的一些我最喜欢的演讲:

    - Psychological Warfare in Reverse Engineering https://www.youtube.com/watch?v=HlUe0TUHOIc

    - The MoVfuscator https://www.youtube.com/watch?v=R7EEoWg6Ekk

    - Hardware Backdoors in redacted x86 https://www.youtube.com/watch?v=jmTwlEh8L7g

  2. weinzierl

    当我刚开始接触电脑时,DRAM 对青少年来说也是能理解的:RAS、CAS、读取、完成。

    好吧,必要的刷新操作虽然总是有点让人头疼,但还是在可管理的范围内。

    如今,我觉得你至少需要三个博士学位才能启动一个带 DRAM 的微控制器,更别提那些仅仅为了访问 DRAM 所必需的专有二进制 blob 了。难怪 PSRAM 会存在。

    由此推论,如此巨大的攻击面提供许多机会也就不足为奇了。(当然,这并不意味着容易发现它们,向 Christopher Domas 致敬,只是我预计会有更多这样的漏洞)。

  3. WhiteDawn

    这一切都很棒,让你能完全不受限制地访问自己的系统,这才是生活本该有的样子。

    不过我敢肯定,Xbox 和 PlayStation 的安全团队现在有点紧张了。在这些机器上获取 ring-0 权限几乎是不可能的,但一旦得手,其他一切就都敞开了。

  4. gmueckl

    OK,根据 README,这能在 AMD Jaguar 上运行。那是 2013 年的架构了。里面提到 Zen 3 的内存控制器寄存器有不同的基地址,但也就仅此而已。这个攻击实际上能在哪些更新的 CPU 上运行?

  5. dzdt

    所以在受影响的系统上,ring 0 的 root 权限几乎可以访问所有原本隐藏在负环(negative ring)区域的内容。页面对于除了这个特定的 AMD16h(一个较老的 AMD 低功耗系列)之外,还有哪些处理器家族可能类似,讲得相当含糊。

  6. raver1975

    每次我写 C 代码的时候,我的内存就被我搞得一团糟(spaghettify)。

  7. zahlman

    这只有在你已经拥有 root 权限(为了超越那个限制)时才适用,对吧?它并没有暴露新的本地提权风险?

  8. randyrand

    我有点困惑。为什么这个重映射选项会暴露给用户空间?

同日更多故事

2026-08-13