这是一个令人兴奋的新版本,包含跨平台的改进和新功能。以下是新内容:

Fruity 后端改进

@hsorbo 和我一直在努力增强 Fruity 后端,我们很高兴分享以下改进:

  • 添加对 TCP 隧道协议的支持,并将其设为默认值,以匹配 Apple 的新行为。 可以使用 FRIDA_FRUITY_TUNNEL_PROTOCOL 环境变量切回 QUIC。
  • 修复旧版 OS 的隧道逻辑边界情况,即使 usbmuxd 不可用也能确保可靠运行。
  • 优雅关闭 TunnelConnection,以提高稳定性。
  • 修复拆除期间启动 USB 操作时可能出现的挂起,防止传输卡住。
  • 修复 QuicTunnelConnection 拆除逻辑,正确处理关闭操作期间的错误。
  • 放宽 NCM 接口存在性检查,只需一个可用的网络接口。
  • 调整为始终先尝试 USB 传输,因为网络传输可能更慢或不可用。
  • 改进跳过受限回退时对超时情况的处理。
  • 现在预期网络设备会快速响应与配对服务的连接,从而在设备已休眠时改善用户体验。
  • 修复新式设备的 CoreDevice UDID 逻辑。

Android

  • 当 extractNativeLibs 设为 false 时,Gadget 现在支持从 APK 加载资产, 改善了对现代 Android 应用的兼容性(感谢 @gergesh)。
  • 恢复注入器对共享 libc 区间的处理,当目标进程最低的 libc.so 区间是共享映射时, 确保行为正确(感谢 @lx866)。

Linux

  • 改善注入器与 MUSL 的兼容性,处理 loader 字符串的差异(感谢 @luckycat889)。
  • 支持在构建 helper 时覆盖配置,为构建提供更大灵活性(感谢 @luckycat889)。
  • 为注入器的远程调用分配栈,改善与 Go 应用等使用小栈的程序的兼容性(感谢 @ajwerner)。
  • 添加重建 helper 二进制文件的 CI,确保源码与已检入的二进制文件保持一致(感谢 @ajwerner)。
  • 当 $TMPDIR 为 noexec 时选择其他临时目录

跨平台

  • 在构建系统中添加对非 UTF-8 locale 的支持,确保更好地兼容使用各种 locale 设置的系统 (感谢 @JunGe-Y)。
  • 在构建系统中添加对 PowerPC 架构的支持。
  • 在 frida-inject 和 RpcClient 内部添加对二进制数据处理的支持。

祝大家黑客愉快!