☰
PS5 Y2JB Autoloader负载投递链全解:kexp内核Shellcode与elfldr如何完成最终交付
2026/10/24 1:17:09 网站建设 项目流程

【免费下载链接】ps5-y2jb-autoloader

An automated payload loader for exploited PS5 consoles

项目地址:https://gitcode.com/gh_mirrors/ps/ps5-y2jb-autoloader
点击查看免费下载

PS5 Y2JB Autoloader 是一款面向已越狱 PS5 主机的自动化负载投递工具,支持固件 4.03–13.60(11.40 暂不支持)。它把整个链路封装成一条流水线:YouTube 用户态漏洞利用 → Lapse/Relapse 内核漏洞 →kexp 内核 Shellcode注入elfldr→ 统一自动加载器完成最终 payload 投递,全程无需手动操作。

一、这个自动加载器到底做了什么

普通用户需要手动发送的每一步,README.md 中描述的项目都会自动完成:

阶段动作对应源码
启动入口YouTube 应用加载download0.dat,执行 src/splash.html → src/main.js浏览器沙箱内运行
用户态漏洞V8 漏洞获取任意读/写/ROP 原语src/main.js#L125-L142
内核漏洞按固件自动选择 Relapse 或 Lapse 提权src/main.js#L1195-L1213
Shellcode 注入kexp 一键 Shellcode 安装 elfldrsrc/aioshellcode.js
最终投递通过 9021 端口把 ELF 发给 elfldrsrc/autoload.js#L69-L155

⚠️ 固件 11.40 目前不支持;Relapse 需要活动网络接口(Wi-Fi 或有线,不需要互联网)。

二、第一步:YouTube 浏览器里的用户态利用

一切从 YouTube 应用的内置浏览器开始。src/main.js 利用 CVE-2021-38003("the hole")构建不稳定原语,再通过伪造 V8 堆对象(fake Array / ArrayBuffer / BytecodeArray)升级为稳定的addrof/read64/write64,最终搭出 ROP 链。

几个新手友好的观察点:

  • src/global.js#L251-L309 定义了 PS5 的全部 syscall 编号表(mmap、mprotect、socket、jitshm_create等),后续所有系统调用都靠它。
  • src/global.js#L98-L164 为 4 个不同 YouTube 构建号分别维护一套 ROP gadget 偏移(eboot_base/libcobalt_base),这就是"按 YouTube 版本适配"的来源——版本对照表见 README.md。
  • ROP 测试成功后(src/main.js#L1001-L1007),脚本通过gettimeofday附近的 PLT 包装器获得真正的syscall()能力,并顺便关掉 PSN 断网弹窗。

三、第二步:Lapse / Relapse 内核漏洞与提权

拿到 syscall 能力后,程序在 src/main.js#L1195-L1213 按固件分流:

  • Relapse(src/relapse.js):FW 7.00–13.60 且有网络时优先使用,9.05 与 11.40 除外;
  • Lapse(src/lapse.js):FW ≤ 10.01 且无网络时的兜底。

以 Lapse 为例,其提权逻辑集中在 src/lapse.js#L1600-L1640:把进程的fd_cdir/fd_rdir指向根 vnode(获得根文件系统读写)、置空fd_jdir(跳出沙箱)、放宽 dynlib 地址范围并开放dlsym。之后 src/misc.js#L242-L282 的is_jailbroken()用getuid()==0 && !is_in_sandbox()确认越狱成功。

内核读写原语本身在 src/kernel.js#L3-L9,所有结构偏移(proc、filedesc 等)集中在同文件顶部的kernel_offset。

四、第三步:kexp 内核 Shellcode 与 elfldr 注入

这是"最终交付"前最关键的一跳,全部逻辑在 src/aioshellcode.js:

  1. 装载 elfldr:load_elfldr()(L78-L90)从 YouTube 缓存目录读出 elfldr 的 ELF 二进制并拷入堆内存;
  2. 映射 kexp:map_shellcode()(L26-L45)用jitshm_create创建可执行共享内存,再mmap(PROT_RWX)得到可执行地址;
  3. 执行 Shellcode:run_shellcode()(L47-L76)把allproc地址、master/victim 管道 fd、elfldr 数据地址与大小打包进参数区,用Thrd_create起线程执行,再Thrd_join等待完成。

这里的kexp是 ufm42 的 PS5 "越狱后 All-in-One" Shellcode(见 third_party/ps5-kexp/),它接管内核态资源并完成 elfldr 的安装——一个监听127.0.0.1:9021的 ELF 加载守护进程。elfldr 本体来自 third_party/ps5-elfldr/,默认是只接受本机连接的定制版,可防止局域网内其他设备向主机发 payload。

构建时,Makefile 的y2jb_update.zip目标会把@@KEXP_FILE@@、@@ELFLDR_FILE@@占位符替换为实际的kexp-*.bin与elfldr-ps5-*.elf文件名(Makefile#L19-L28),所以源码里看不到具体二进制——它们由第三方子模块在构建期动态拉取。

五、最终交付:elfldr 9021 端口与统一自动加载器

kexp 跑完后,src/main.js#L1224-L1236 先确认越狱成功,依次执行:

  1. 自动更新检查:src/update.js 扫描 USB 8 个槽位与/data下的y2jb_update.zip(路径清单见 update.js#L573-L579),校验update-info.txt后备份旧文件、原子替换,顺带修正splash.html权限与应用图标;
  2. payload 投递:src/autoload.js#L69-L96 每 200ms 轮询一次127.0.0.1:9021,等 elfldr 就绪后,把ps5-unified-autoloader.elf通过 TCP 整体写入(autoload.js#L145-L151)。

统一自动加载器(third_party/ps5-unified-autoloader/,Y2JB / BD-JB / Lua 三种自动加载器共用)接手后有两种行为:

  • 找到autoload.txt配置:按行逐个投递.elf/.bin,支持!1000毫秒级延时与@sync配置迁移;
  • 没找到配置:自动启动 Payload Manager,提供 Web UI,用浏览器直接配置和发送 payload。

一个典型的autoload.txt(含自定 elfldr 时需加延时):

elfldr.elf !4000 etaHEN.elf

六、源码文件速查表

文件职责
src/main.js用户态 V8 漏洞、ROP、syscall 能力、漏洞分流与主流程
src/global.js全局声明、ROP gadget 表、syscall 编号表
src/kernel.js内核读/写原语与结构偏移
src/lapse.js / src/relapse.js两套内核漏洞实现
src/aioshellcode.jskexp Shellcode 映射执行、elfldr 装载
src/autoload.js轮询 9021 端口并投递统一自动加载器
src/update.jsy2jb_update.zip热更新器
src/misc.js越狱状态判断、通知、字符串分配等工具
Makefile打包y2jb_update.zip发布包

七、新手常见问题 📌

  • 为什么需要网络?10.20–13.60 固件必须走 Relapse,而它要求检测到活动网络接口(局域网即可,无需上网);旧固件无网络时会自动回退 Lapse。
  • 11.40 为什么不能用?内核漏洞对 11.40 尚无适配,项目明确标注暂不支持。
  • 更新会不会弄坏系统文件?更新器会先备份(UPDATER_BACKUP)再替换,任何一步失败都会尝试回滚,并且只操作 YouTube 缓存沙箱内的文件。
  • 9021 端口监听在局域网安全吗?默认 elfldr 只接受 localhost 连接,即仅主机自身可投递 payload;如需 PC 远程发送,可按 README.md 中的说明放入自定义elfldr.elf并加入配置。

整条链路的精髓在于分工:用户态漏洞负责"进门",内核漏洞负责"提权",kexp Shellcode 负责"铺路"(装好 elfldr),统一自动加载器负责"送货"。四个模块各司其职,任何一环失败都会通过 src/misc.js 的send_notification给出明确提示并安全退出。

【免费下载链接】ps5-y2jb-autoloader

An automated payload loader for exploited PS5 consoles

项目地址:https://gitcode.com/gh_mirrors/ps/ps5-y2jb-autoloader
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询