工具测评 · FENGDAO AI RESEARCH

把DRAM加密“撬开”,一个C项目在一周内拿下近千颗星

一个只有几百行C代码的工具,靠逆向DRAM加密密钥,让CPU调试时不再“黑盒”。它解决的问题很窄,但思路值得抄。

2026年8月15日3 分钟读完冯导AI研究院10 次阅读#硬件安全#DRAM加密#逆向工程
把DRAM加密“撬开”,一个C项目在一周内拿下近千颗星
一个面向硬件安全研究的小工具,解决的问题极窄,但思路干净,值得相关方向的人收藏。

适合:做UEFI固件、平台安全和CPU底层分析的工程师与研究者。

先说结论

skitter-creek-bath-salts解决的是一件具体到几乎没人愿意碰的事:当CPU为了安全给DRAM加了“地址加密”,调试和固件分析时数据看起来全是乱码,这个工具能逆向出密钥,把内存里的真实内容还原出来。

一周拿到956颗星,不是因为它代码多复杂,而是它打中了一个长期被绕着走的痛点:硬件安全机制挡住了软件研究。

真正的问题

DRAM scrambling是现代CPU的标配。它的本意是防止冷启动攻击和简单的总线监听——内存里存的是原始数据,线缆上跑的却是XOR过的密文,没有密钥就看不懂。

问题在于,它同时把合法研究也挡在外面了:

  • 固件研究者想从dump里读BIOS状态,读到的是乱码。
  • 漏洞研究者在分析内存布局时,符号表对不上真实地址。
  • 做UEFI和平台安全的人想验证机制有没有被绕过,却没有现成的工具把它解开。

以往大家的做法是:要么找厂商要内部接口,要么自己写代码算XOR,要么干脆绕过内存分析转去研究别的地方。麻烦,而且不可复用。

这个项目的思路是反过来的——既然加密密钥藏在CPU微代码里,那就把它抽出来,写成可复用的恢复库。

怎么做更省力

它的核心做法分三步,每一步都不需要特殊硬件: 1。 通过CPU公开的诊断接口触发一次已知明文的内存操作。 2。 抓取加密前后的数据,算出密钥种子。 3。 用生成的密钥去解密任意一段dump。

整个工具是纯C写的,依赖很少,跑在Linux上。对研究者来说,这意味着拿到一个陌生平台的dump之后,第一件事不用再是写定制解码器,而是直接复用库函数。

省力的关键不是“它能做更多”,而是“它把一件本来要重复造轮子的事,变成了一次性投入”。

研究场景传统做法用这个工具之后
UEFI固件分析手工计算XOR密钥直接调用库函数
漏洞PoC验证依赖厂商文档自行恢复明文
平台安全评估多平台各写一套通用接口适配

表格前后说明:传统做法里每一项都需要针对特定CPU型号单独处理;用工具之后,重点从“解密”转移到“分析”本身。

哪些坑要避开

第一,这是研究工具,不是攻击工具。它的存在降低的是分析的门槛,不是攻击的门槛——攻击者本来就有更强的手段,不要把它神化。

第二,依赖具体的CPU代次和微代码版本。换到新平台可能要重新提取密钥,老平台的密钥也可能随着固件更新失效。把它当成“一次性工具”是误判。

第三,对普通用户来说,这个工具几乎没有意义。它解决的问题在消费场景里不存在,不要因为星标多就以为它和日常开发有关系。

第四,使用前要确认所在地区的合规要求。逆向硬件安全机制在某些司法管辖区有明确边界,别踩线。

现在就能动手

如果你的工作涉及固件分析或平台安全,建议这样做: 1。 先去仓库的Releases页下载对应平台的预编译包,确认支持的CPU型号。 2。 准备一段已知内容的测试数据,验证密钥恢复结果是否一致。 3。 把库函数接入现有的分析流水线,替换原来手写的XOR逻辑。 4。 记录密钥提取参数和微代码版本号,写进内部文档,避免后续平台升级时踩坑。

如果只是出于好奇想了解原理,看一遍README里的示意图和那几百行C代码就够了,别在生产环境跑。

顺带一提,做公众号长文技术解读时,用AI公众号长文写作把外文项目笔记整理成可发布的中文稿,效率比从零写要高不少。

继续阅读