本次发布将 Frida 带到了 PlayStation 5,扩展了 Barebone 对虚拟机和内核的覆盖范围, 并修复了一系列注入和插桩问题。
- prospero:添加 PS5 后端,并提供 frida-server、portal、inject、Gadget 和 devkit 的构建版本。 在游戏机的限制范围内,该后端可以枚举应用、启动程序和应用,以及注入代理。
- barebone:添加对 Android 模拟器的支持。内核符号发现现在可以处理更多 Linux 映像和旧版内核, 新增的 hostlink 选项则包括基于 vsock 的管道和串行连接。
- barebone:将 WinNT 支持扩展到 arm64,包括进程注入,并添加对 VirtualBox 和 Parallels 客户机的支持。大量修复提升了代理在 Windows 和 Linux 内核上的可靠性。
- device:添加连接进度事件,使应用可以在设备连接或上传 Barebone 代理时显示 Frida 正在执行的操作。 绑定中也提供了这些新信号。
- fruity:修复 macOS 27 上的 RSD 端口发现;找不到新发布的服务时会刷新服务快照。
新增的
force_transport=usbmux通道选项允许调用方即使在隧道可用时也选择 usbmux。 感谢 @mrmacete 提供该选项。 - darwin:修复 iOS 27 上的注入泄漏;该问题可能导致每次附加后都保留一个 40 MB 的代理 blob。 同时改进内存保护处理,并在放宽策略期间保持暂停状态。感谢 @jiska 完成这些修复。
- gum:改进 arm64 重定位以及 Interceptor 对函数序言的处理,包括 X16 和 X17 同时被占用的情况。 Grafting 现在使用 Arm64Relocator,从而可以重定位 PC 相对指令。感谢 @jiska 和 @daniillnull 在这方面所做的工作。
- interceptor:跟踪与每个帧关联的 C 栈,改进对有栈协程的处理。感谢 @wertyutreethgfd 的贡献。
- linux:在内核辅助注入后回收临时栈和 TLS 映射,并在代理卸载时释放加载器区域。 读取辅助向量中的程序头之前先进行验证,修复 Wine 预加载器暴露出来的问题。 感谢 @tntljc 完成后一项修复。
- socket:处理对等端在 WebSocket 握手与接受连接之间断开的情况,避免中止进程。 感谢 @it4ch1-007 完成该修复。
- darwin:在可用时使用越狱环境提供的内存挂钩。感谢 @devnoname120 的贡献。
- gdb:改进线程选择、超时和停止处理,并增强与不支持二进制写入的存根的兼容性。
此外还修复了 Windows 中通过 Interceptor 跳板进行栈展开的问题、Swift 事件传递和变体生命周期问题、 生成的绑定问题,以及各种平台特定的构建问题。
oleavr