ZigZagBoi1/PS5-14.10-Research · 上手攻略

  • 仓库:ZigZagBoi1/PS5-14.10-Research
  • 链接:https://github.com/ZigZagBoi1/PS5-14.10-Research
  • 分类:系统安全 · 主机漏洞研究
  • 作者:Jay
  • 更新:2026-10-19

§0 是什么

PS5 14.10 固件内核漏洞利用研究社区项目,核心思路:通过 PS5 游戏存档注入一个 Lua 5.1 加载器,在用户态建立 TCP 9026 端口监听,由外部 PC 向其发送 Lua 探针脚本,对 PS5 系统调用、内存布局、网络栈进行全面探测,目标是找到一个可用的 14.10 内核读写原语(kernel R/W primitive)。

重要澄清(⚠️ 必读):截至 2026-10-18,项目进度约为 30/100(按项目自身评分标准),内核读写和 KASLR 突破均未得到验证。 项目已测试 17 种 KASLR 泄露技术,全部失败。这是一个仍在进行中的公开研究,不是已完成的漏洞利用工具。

§1 解决什么问题 / 研究背景

PlayStation 5 的最新固件 14.10 基于 FreeBSD 内核(r230171,2026-09-28),是当前主流 PS5 越狱社区的核心研究目标。与 PS4 不同,PS5 的安全加固层次更深:

  • Securelevel 1024:PS5 特有一个远超标准 FreeBSD 安全等级的数字
  • W^X 强制执行:任何 mmap(PROT_EXEC) 均被拒绝,代码注入路径被堵死
  • SMAP(Supervisor Mode Access Prevention):内核与用户态内存严格隔离,无法通过时序差异判断内核映射状态
  • 每个 TCP 连接独立进程:每次连接到 9026 端口都会 fork 新进程,ASLR 每次重新随机化

项目方想解决的问题是:在上述重重防御下,是否还存在一条从用户态到达内核态的路径,并最终获取内核读写能力。

§2 快速安装(研究环境准备)

硬件与前提条件

- 一台 PS5,运行固件 14.10(⚠️ 版本必须精确匹配)
- 一台已安装 jb 的 PS4(用于处理存档加密)
- 一台 PC(Linux/macOS/Windows),与 PS5 同局域网
- U 盘(用于存档传递)
- Python 3.8+(用于运行探针发送脚本)

整体进入流程(5 步)

① PS5:下载并运行游戏《Hamidashi Creative》(はみだしクリエイティブ)免费Demo,日服PSN
② PS5:创建游戏存档
③ PS4(已越狱):使用 Apollo Save Tool 激活与 PS5 相同 PSN 账户ID的存档文件,解密存档
④ PC:在解密后的存档中嵌入 Lua 加载器
⑤ PS4:将修改后的存档重新加密,回传 U 盘
⑥ PS5:导入存档,运行游戏 → 屏幕黑屏 + 提示"lua loader is loaded"
⑦ PC:通过 TCP 9026 发送 Lua 探针

⚠️ 关键限制:PS4 与 PS5 的 PSN Account ID(16位十六进制)必须完全匹配,否则 PS5 会拒绝导入存档。

PC 端工具安装

# 克隆仓库
git clone https://github.com/ZigZagBoi1/PS5-14.10-Research.git
cd PS5-14.10-Research

# 安装 Python 依赖(Python 3.8+)
pip3 install -r requirements.txt  # ⚠️ requirements.txt 可能不存在,跳过即可,核心脚本为纯标准库

# 发送 Lua 探针示例(前提:PS5 已运行 Lua 加载器)
PYTHONIOENCODING=utf-8 python3 tools/send_probe.py --save probes/phase14_final_push/56c_redirect_nonvm.lua

# Windows PowerShell 无 Python 环境时可用:
.\tools\send_probe.ps1 probes/phase14_final_push/56c_redirect_nonvm.lua -Save

⚠️ 探针脚本需要知道 PS5 的局域网 IP 地址(--ps5-ip 参数),Lua 加载器默认监听 TCP 9026。

§3 核心用法(可复制命令)

3.1 发送探针

# 标准发送(保存结果到 results/ 目录)
PYTHONIOENCODING=utf-8 python3 tools/send_probe.py --save probes/phase1_identity_layout/01_identity.lua

# 指定 PS5 IP(⚠️ 请替换为实际 IP)
PYTHONIOENCODING=utf-8 python3 tools/send_probe.py --ps5-ip 192.168.1.100 --save probes/phase14_final_push/56c_redirect_nonvm.lua

# 仅查看已确认可用的系统调用列表
cat docs/ATTACK_SURFACE.md

3.2 研究阶段与探针结构

项目将研究分为多个 Phase,每个 Phase 有独立探针目录:

probes/
├── phase1_identity_layout/    # Phase 1:系统ID、基础系统调用、内存布局
├── phase7_heap_exploitation/  # Phase 7:GPU mmap 堆读/写、ROP、ASLR 绕过
├── phase9_kaslr_defeat/       # Phase 9:KASLR 破解尝试
├── phase14_final_push/        # Phase 14:深度系统调用探测、CClosure 重定向
└── phase15_native_sysent/     # Phase 15:原生 sysent 677-734(未运行)

每个探针脚本均为纯 Lua 代码,可直接阅读,例如 probes/phase14_final_push/56c_redirect_nonvm.lua。

3.3 KASLR 暴力破解驱动(⚠️ 实验性,未验证有效)

# 多连接暴力猜解 KASLR 偏移(⚠️ 警告:项目文档显示 17 种 KASLR 技术已全部失败)
python3 tools/kaslr_bruteforce.py --ps5-ip YOUR_PS5_IP --step 0x200000

3.4 分析已有结果

# 阅读所有探针状态索引
cat docs/PROBE_INDEX.md

# 阅读所有发现汇总
cat docs/FINDINGS.md

# 阅读攻击面完整状态表
cat docs/ATTACK_SURFACE.md

# 阅读进度审计(含评分标准)
cat docs/PROGRESS_AUDIT.md

# 将全部研究语料喂给 AI 模型寻找新路径(适用于 1M+ token 上下文模型)
# 喂 docs/ALL_RESULTS.md + docs/ALL_PROBES.md + CLAUDE.md

§4 典型适用场景

场景 A:想参与 PS5 漏洞研究但无从下手 → 阅读 docs/STRATEGY.md 了解已尝试路径和死胡同;阅读 docs/FINDINGS.md 掌握当前已知可用的用户态原语。

场景 B:拥有 AI 模型算力,想贡献 KASLR 破解思路 → 按 README 所述将 docs/ALL_RESULTS.md + docs/ALL_PROBES.md + CLAUDE.md 整体喂给大上下文窗口模型(1M+ tokens),要求模型分析 13.60 内核 dump 与 14.10 行为差异,寻找新攻击面。

场景 C:学习现代主机安全研究方法论 → 项目本身是极好的案例:完整的探针驱动设计、系统调用枚举、攻击面映射、独立证据审计流程,均有详细文档记录。

场景 D:FreeBSD 内核系统调用研究 → docs/ATTACK_SURFACE.md 包含 735 个 sysent 表项的完整逐项测试结果,是一份罕见的 Sony 定制 FreeBSD 14.10 系统调用状态普查。

§5 坑与注意

  1. ⚠️ KASLR 尚未突破:项目已测试 17 种 KASLR 泄露技术,全部返回阴性结果。不要误以为项目已有内核访问能力——README 明确标注"No validated kernel base in saved tests"。

  2. ⚠️ AIO/kldstat 系统调用会直接杀死进程:任何调用 sys 661(AIO)或 sys 307/308(kldstat/kldnext)的探针都会导致 PS5 进程当场崩溃,这已被明确标注为"hard wall"。

  3. ⚠️ 存档 Account ID 匹配问题:这是整个进入流程中最容易失败的环节。PS4 和 PS5 必须登录同一个 PSN 账户,且 Account ID 必须一致,PS5 不会接受 ID 不匹配的存档。

  4. ⚠️ 每个 TCP 连接都会 fork 新进程:意味着每次连接时 39 个模块的 ASLR 基址都会变化,不能依赖之前连接中缓存的模块基址。

  5. ⚠️ 13.60 漏洞不等于 14.10 漏洞:项目明确指出 13.60 的 Relapse 漏洞路径在 14.10 上 sys 588 返回 no-op,AIO 系统调用(13.60 的关键路径)在 14.10 上会直接杀死进程,两者不能混用。

  6. ⚠️ 无内核读写验证:不要引用项目声称"已完成漏洞利用"——项目自身审计(2026-10-18)明确给出 25/100 分,内核漏洞利用gate全为 0。

  7. ⚠️ PowerShell 脚本需要 UTF-8 BOM:Windows 下运行 send_probe.ps1 时建议使用 VS Code 或 PowerShell 7+ 以避免编码问题。

§6 与同类对比

项目 固件版本 内核读写 KASLR 特色
PS5-14.10-Research 14.10 ❌ 未验证 ❌ 17种全失败 Lua探针框架、完整系统调用枚举
PS5-V13.60-Research(同伴仓库) 13.60 ✅ 有(Relapse) ✅ 已有可用的 Relapse 漏洞
Byepervisor-Reborn 13.60 ✅ 有(VM escape) ✅ 超管理权限逃逸

可以看出,14.10 的研究价值在于它是当前最新固件,但与 13.60 相比安全缓解大幅加强,研究尚处于非常早期的阶段。13.60 的漏洞利用手段无法直接移植到 14.10。

§7 一句话推荐结论

PS5 14.10 漏洞研究是目前主机安全社区最活跃的前沿课题之一,项目提供了极为详尽的 Lua 探针框架和系统调用审计文档,适合有 FreeBSD/主机安全背景的研究者参与——但请务必认清当前没有任何可用的内核读写原语,KASLR 仍是最大障碍,切勿将 13.60 的已知漏洞误用于 14.10。


⚠️ 重要提示:本文内容基于 GitHub README(fetch 2026-10-19)及 docs/ATTACK_SURFACE.md、docs/PROGRESS_AUDIT.md 公开文档整理。项目研究仍在进行中,内核读写能力未经验证,本文不构成任何漏洞利用建议。所有技术细节以仓库最新文档为准。