偷看CPU的保险箱:skitter-creek-bath-salts从C6 stash挖出的5个隐藏寄存器

发布时间:2026/10/21 1:37:01

偷看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),仅供参考
延伸阅读

更多相关文章

2026/10/21 3:34:25

V100 16G跑27B量化模型实测:理论极限与标题水分的差距

先别急着高兴。我在硬件群里看到“单卡 V100 16G 跑 Qwen3.8-27B 量化:1000 t/s prefill、60 decode、256K 上下文”这个标题时,第一反应不是“老卡又封神”,而是“这数字到底怎么算出来的”。V100 是 2017 年的 Volta 架构,16GB …

2026/10/20 9:13:29

AI资讯日更工作流:结构化、可审计、面向开发者的技术简报系统

1. 项目概述:这不是一份“新闻稿”,而是一套可复用的AI资讯日更工作流“2026-09-28 AI最新资讯日报”这个标题乍看像一张过期报纸的存档,但真正有经验的人一眼就能看出——它根本不是内容成品,而是一个高度结构化的日期占位符领域…

2026/10/20 10:36:39

RAG系统验收别只看一个指标:从多选题命中率到多维评测的实战复盘

上一周我们团队在药企客户现场做 RAG 系统验收。同一个知识库、同一批测试问题、同一条模型链路,内部自动化评测跑出来的多选题命中率是 95 分,业务方换了一套更严格的评分规则复核,成绩掉到 85 分。会议室里的气氛一下就紧张了。这个差距不是…

2026/10/21 6:11:23

机器人对话系统地图模块设计:POI检索、路径规划与避坑实践

做机器人对话系统最头疼的一件事,不是意图识别,也不是自然语言生成,而是把真实世界接进来。用户问一句“我从现在的地方去服务中心怎么走”,你得在几百毫秒内完成坐标解析、路径计算、话术拼接,还得把路线图用卡片发出…

2026/10/21 6:11:23

桌面图标模拟FlappyBird:轻量级系统级交互实践

1. 项目概述:让桌面图标“活”起来的轻量级游戏化实践你有没有试过盯着Windows或macOS桌面上那一排排静止的图标发呆?它们整齐、规范、功能明确,却也透着一股难以言说的机械感。最近在某高校数字媒体实验室带学生做交互小实验时,一…

2026/10/21 6:11:23

React项目工程化落地指南:从组件拆分到性能优化

看到标题“rea”,很多做前端的朋友应该都不陌生,这就是 React 在社区里、在代码仓库里最常用的简称。但正是因为太常见了,反而容易让人忽略它背后那一整套完整的前端工程化思维。这篇内容我不打算讲官方文档上已有的 API 清单,而是…

2026/10/21 6:11:23

lingbot-map拆解:从激光雷达到机器人栅格地图的完整闭环

lingbot-map这个项目名,第一次看到的人多半会以为是个地图工具库,实际上它是“lingbot”移动机器人项目里专门负责“建图与地图数据管理”的子模块。做机器人的人都知道,一台轮式机器人能不能正常干活,前提条件往往不是电机够不够…

2026/10/21 6:06:23

Litellm统一大模型API网关:架构原理、代理模式与生产环境实战

1. 项目概述:litellm 到底解决什么问题先抛一个场景,你大概率遇到过。公司同时接了 OpenAI 的 GPT 系列、某云厂商的国产大模型、还有个开源模型部署在自己的 GPU 服务器上。每个厂商的 API 格式还不一致,OpenAI 是/v1/chat/completions&…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/21 0:00:35

交通流仿真实战:IDM跟驰与MOBIL换道模型参数调优与避坑指南

简介:这份资源是面向交通工程学习者与Python开发者的微观交通流仿真项目,核心实现智能驾驶模型(IDM)下的车辆跟驰与换道行为,可用于理解速度、密度与流量之间的动态关系,适合具备Python基础、希望深入交通模…

2026/10/21 0:00:35

揭穿智能体表面顺从:用追踪代码重建任务执行确定性

1. 表面顺从不是智能体的“礼貌”,而是任务执行链路上的隐性断点最近在调试一个跨平台长周期任务调度系统时,我反复遇到一种令人困惑的现象:智能体在用户指令发出后,几乎秒级响应“已收到”“正在处理”“请稍候”,UI上…

2026/10/21 0:00:35

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑