偷看CPU的保险箱:skitter-creek-bath-salts从C6 stash挖出的5个隐藏寄存器
偷看CPU的保险箱skitter-creek-bath-salts从C6 stash挖出的5个隐藏寄存器【免费下载链接】skitter-creek-bath-saltsUnlocking _everything_ on the CPU with DRAM scrambling项目地址: https://gitcode.com/gh_mirrors/sk/skitter-creek-bath-saltsskitter-creek-bath-salts 是一个用 DRAM scrambling内存地址打乱技术解锁 CPU 保护区域的开源安全研究项目它重编程内存控制器的底层地址翻译让 PSP 私有内存、SMM、微码补丁以及 CPU 深睡时藏起来的 C6 stash保险箱一览无余。这篇文章带你快速看懂它是如何从 C6 stash 里挖出 5 个平时看不见的 CPU 寄存器状态以及为什么这 5 个寄存器只是开胃菜。C6 stash是什么CPU深睡前的寄存处CPU 核心进入 C6 深度休眠时会被断电寄存器状态无处安放——于是 CPU 会把每个核心的完整 x86 架构上下文寄存到 DRAM 顶部的一段隐藏保留区里等唤醒时再恢复。这一段内存就是C6 stash位于物理内存顶端TOP_MEM 之上对操作系统、ring-0 甚至 CPU 自身都不可见在 AMD Family 16h 平台上它是一块8 MiB的保留区从 userspace/dram_carveouts.c 可以看到它紧挨着 8 MiB 的 PSP 私有内存两者加起来就是内存顶部的保险箱区每个休眠核心占一个16 KiB 保存区测试机上 4 个核心分别落在CC6_BASE {0, 0x4000, 0x8000, 0xc000}。换句话说CPU 把最私密的寄存状态明文放在了 DRAM 的电容里只是钥匙地址翻译藏在内存控制器深处。一张表看懂从C6 stash挖出的5个寄存器作者对每个核心保存区的逐字节扫描先顺手命中了这 5 个经典 x86 状态以下为例测平台上 core 0 的值完整命令见 README.md 的 C6 章节保存区偏移寄存器/状态挖出的值core 00x8b0GS 基址 / per-cpu base0xffff9be4e36000000x9a0CR3页表根0x0fd460000x9b8IA32_APIC_BASE0xfee009000xa38可变 MTRRbase/mask0x6f000000 / …08000xb10保存的 RIP0xffffffff8f3a0029有意思的细节藏在 APIC_BASE 那一列4 个核心里只有 core 0 的值是0xfee00900BSP 位被置位其余三个都是0xfee00800——引导处理器和它的三个打工AP就这样在保险箱里被当场抓包。但这 5 个寄存器 ring-0 本来就能读真正让研究者兴奋的是保存区里其他东西ring-0 根本摸不到、也从未被公开文档讨论过的 CPU 内部寄存器状态正躺在那里等人行走。三步解锁如何读取C6保护内存完整命令清单整个流程分三步工具都在 userspace/ 目录跑之前请确认目标平台项目只在 AMD Family 16h 上验证过平台自检./userspace/platform_check——不在支持列表上的机器直接退出避免白折腾定位保险箱sudo ./userspace/dram_carveouts --region cc6会输出CC6_BASE和CC6_SIZEuserspace/dram_carveouts.c 里封装了CC6 位于 TOP_MEM0这一布局规则倒出数据用 userspace/dram_dump.c 通过已求解的别名映射读取sudo ./userspace/dram_dump --protected-pa $CC6_BASE --length 0x10000 \ $(printf -- --map %s data/maps/2x4gb_*.map) cc6.bin映射文件data/maps/下的.map是破解钥匙由 analysis/gather_aliases.py 收集地址别名、再交给 analysis/unspaghettify.py 用 z3 解出。仓库自带多种内存配置1x1gb ~ 2x4gb的现成映射按你机器的 DIMM 布局选对应前缀即可没有匹配的拓扑就按 USAGE.md 自己烤一份。为什么这些寄存器只是冰山一角C6 stash 保存区里最值钱的其实是0x1800 处的微码补丁副本核心掉入 C6 时易失的微码 RAM 会熄灭CPU 把加载中的补丁存进 stash唤醒时重新灌回——所以这一份副本正是核心下次醒来要执行的东西。作者从 stash 里抠出 0x5f0 字节后与系统固件里的微码比对fam16h 命中 68/94 个数据块确认抓到了正在跑的微码详见 README.md。再往下就是 userspace/dram_poke.c 的主场读得进去的别名同样写得进去。PSP 私有内存fTPM 的 RSA 引擎就住在这里、SMM 的 SMRAM都已被同一套 DRAM scrambling 管道逐一解锁——正如项目口号所说翻转内存控制器最后一个环节的一位保险箱里的一切都敞开了。动手前的检查清单与注意事项✅ 仅在自己的硬件上做实验DRAM_RW会实时改动内存控制器状态系统可能不稳定务必备好断电重启手段✅ 全程需要 root 权限先跑./userspace/platform_check排除不支持的平台✅ 想从零构建环境git clone https://gitcode.com/gh_mirrors/sk/skitter-creek-bath-salts后执行make构建 kernel/spaghettify.ko 内核模块与全部用户态工具✅ 完整工具链参数与原理见 USAGE.md快速上手示例见 README.md。一句话总结CPU 把秘密交给 DRAM 保管却忘了最底层的地址翻译可以被重编程。skitter-creek-bath-salts 证明保险箱的锁装在一致视图上而打乱坐标之后锁形同虚设。 【免费下载链接】skitter-creek-bath-saltsUnlocking _everything_ on the CPU with DRAM scrambling项目地址: https://gitcode.com/gh_mirrors/sk/skitter-creek-bath-salts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

HarmonyOS 7 ArkUI:无障碍语义漂移与触控目标门禁

HarmonyOS 7 ArkUI:无障碍语义漂移与触控目标门禁

一、审核失败不是“少写了一个标签” 这次的起点是一份很短的测试反馈:读屏进入订单列表后,三个“更多”按钮读出来完全一样;把订单改成已退款,按钮视觉已经变成“查看退款”,读屏却仍然播报“申请退款”;右…

2026/10/9 0:30:46 阅读更多 →
从调研报告到生产落地:Agent开发架构、LangGraph与并发稳定性指南

从调研报告到生产落地:Agent开发架构、LangGraph与并发稳定性指南

我从不觉得调研报告是什么高深的东西,直到我因为要选技术栈,连续翻了十几份Agent相关的开发者报告。说句实话,大部分报告都在讲正确废话,但2026年这份Agent开发者调研报告,配合阿里云那份《Alibaba Cloud AI Agent Han…

2026/10/9 0:30:46 阅读更多 →
LiveAgent安全设计解析:为什么你的API Key永远不会离开本机

LiveAgent安全设计解析:为什么你的API Key永远不会离开本机

LiveAgent安全设计解析:为什么你的API Key永远不会离开本机 【免费下载链接】LiveAgent A fully functional AI Agent desktop client that supports Webui access and can be creatively customized and expanded! 项目地址: https://gitcode.com/gh_mirrors/li/…

2026/10/9 0:30:46 阅读更多 →

最新新闻

4G显存也能流畅跑大模型:llama.cpp与GGUF量化实战指南

4G显存也能流畅跑大模型:llama.cpp与GGUF量化实战指南

如果你的电脑还在用 4GB 显存的显卡,比如 GTX 1650、RTX 3050 Laptop 或者 AMD 那边的 RX 6500 XT,想跑本地大模型,第一反应可能是到处找精简版、量化版,或者干脆放弃转用云 API。但今天我直接说结论:4G 显存完全能跑&…

2026/10/9 4:03:31 阅读更多 →
JavaScript作业避坑指南:函数、精度、Canvas与OC交互全解析

JavaScript作业避坑指南:函数、精度、Canvas与OC交互全解析

又到交JavaScript作业的季节了。我这些年帮学弟学妹和网上的朋友看过少说几百份作业代码,最深的感受是:大部分人不是不会写,而是压根没搞清楚题目到底想考什么。这篇东西是冲着"JavaScript作业"这几个字来的——不管你是卡在函数定…

2026/10/9 4:03:31 阅读更多 →
Django+Flask搭建机器人工厂管理系统:设备数据采集与生产管理实践

Django+Flask搭建机器人工厂管理系统:设备数据采集与生产管理实践

1. 项目背景与整体设计思路接这个项目之前,客户那边的生产车间里已经有十六台焊接机器人和四台搬运机器人,专门做汽车挡泥板的生产。挡泥板这东西听着不起眼,却是汽车底盘防护的关键件,产线上的机器人每天三班倒,大概要…

2026/10/9 4:03:31 阅读更多 →
字符编码与交叉变量初始化:线上乱码的原理与排查实战

字符编码与交叉变量初始化:线上乱码的原理与排查实战

1. 交叉变量初始化到底在解决什么问题前两天帮一个同事排查线上服务偶尔中文乱码的问题,代码跑了三四年没动过,部署方式也没变,结果新环境一上线,日志里的中文标题全部变成了一堆问号和乱码。查到最后,问题不是出在业务…

2026/10/9 4:03:31 阅读更多 →
Agent-Reach:面向业务意图的AI代理调度中枢

Agent-Reach:面向业务意图的AI代理调度中枢

1. 项目概述:Agent-Reach 是什么,它解决的不是“调用API”这个动作,而是“让AI代理真正抵达业务现场”的最后一公里问题Agent-Reach 这个名字乍看像某个新出的大模型工具或CLI套件,但如果你翻过最近三个月 Reddit 上 r/LocalLLMs、…

2026/10/9 4:03:31 阅读更多 →
Agent-Reach 深度解析:Python 构建 CLI 型 AI Agent 的工具调用与避坑指南

Agent-Reach 深度解析:Python 构建 CLI 型 AI Agent 的工具调用与避坑指南

1. 从"Agent-Reach"这个名字说起:它到底想解决什么问题第一次看到"Agent-Reach"这个项目名,我的直觉是:这大概率是一个围绕 AI Agent 能力边界扩展的工具,而不是又一个"套壳聊天机器人"。原因很简单…

2026/10/9 4:02:30 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →