Frida 17.9.2 已发布。这个版本重点打磨构建系统和打包基础设施,同时还带来了新 API、Swift 绑定改进以及大量错误修复。

主要变化:

  • fruity:保持共享 LLDB 会话存活,直至使用它们的最后一个 Gadget 分离。感谢 @mrmacete。
  • elf:更妥善地处理 ELF 后备文件缺失的情况。
  • exceptor:从异常详情中的 arm64e PC 移除 PAC 位。
  • module-registry:使用 r_debug 同步 Linux RTLD 通知,以避免重新进入动态链接器。
  • fruity-syscall-trace:当某个 PID 的符号解析器签名查找失败时,回退到最小签名并继续跟踪。感谢 joe。
  • syscall-trace:添加 include-syscall 支持。感谢 @IPMegladon。
  • stalker-x86:销毁时释放 slow slab,并添加相应辅助函数。感谢 @buherator。
  • compat/build:修复允许的预构建集合为空时的源码构建问题,惠及 FreeBSD 等平台。感谢 @cl45h。
  • build:添加一等的发行版打包支持。Frida Core 现在可以依赖上游 GLib 和系统依赖项构建为共享库;已安装资源位于 lib/frida-1.0 下;支持可重定位的资源发现;生成更干净的 .pc/GIR/typelib 输出;并减少泄漏到安装前缀中的内部子项目产物。
  • apple:在 Darwin 上弃用 OpenSSL。TLS 现在使用 gioapple,证书生成使用 SecKey,libnice 使用 CommonCrypto 和 arc4random_buf,XPC UUID 生成使用 GLib.Uuid,而 macOS 构建会跳过需要 OpenSSL 的 Fruity 代码。此外还新增了 –with-apple-min-os 配置标志,用于提高 Apple 部署目标的最低版本。
  • fruity:把可移植的配对/隧道代码拆分到独立文件;在非 macOS 平台上直接通过 OpenSSL 驱动 TLS-PSK;并修复二进制 plist 序列化器针对 Bytes 值的哈希与相等性判断。
  • core:通过固定已解析的根节点,规避 JSON-GLib 的 Json.Reader 生命周期陷阱,修复启用运行时检查的 GLib 构建中的中止问题。
  • core:修复后续调用 frida_init() 时覆盖 frida_init_with_runtime() 的问题。
  • api:添加 WebRequestHandler、WebRequest、WebResponse 以及端点请求处理程序支持;公开 PortalService 额外端点注册功能。
  • host-session:用捆绑的 PNG 资源替换旧有的硬编码提供程序图标数据,并为本地和模拟器提供程序添加图标。
  • compiler:让动态加载的后端常驻内存。
  • swift:通过 pkg-config 添加 Linux 支持;在 Apple 平台上提供 USE_SYSTEM_FRIDA 逃生开关;添加 WebRequestHandler 绑定、PortalService 端点绑定和 DeviceChange 异步流;扩大 Variant 反序列化覆盖范围;并完善 Swift 6 Sendable 支持。
  • swift:修复 Apple 平台上的 NSNumber JSON 分类、仅使用 CoreFoundation 辅助函数导致的 Linux 构建失败,以及 MSVC 上 Int32/UInt32 枚举原始值不匹配的问题。
  • build:按机器隔离 pkg-config;保留调用方的 PKG_CONFIG_PATH;避开 Strawberry Perl 中损坏的 pkg-config。