这是一个快速错误修复版本,进一步改进了 Darwin 加固兼容性,完善了一些 Barebone 目标,并包含 @Lixhr 贡献的 arm32 重定位器修复:

  • agent:在加固的 Darwin 任务上启用 Gum.Exceptor。旧的选择退出机制源自 Mach 异常端口时期,而得益于 Gum 最近的改进,POSIX 信号后端现在已可在 arm64e 上运行。
  • darwin:先通过匿名页面洗净嵌入式 agent,再将其重新映射到目标中。这样可避免 在较新的加固内核上携带 frida-server 自身 __DATA 映射的代码签名状态。
  • exceptor:通过 trampoline 执行 long jump,让异常处理程序能够在 arm64e 上 重定向 PC 和修改寄存器,从而绕过 XNU 的 sigreturn 验证。
  • exceptor:直接从信号处理程序执行 long jump,而不是尝试通过信号上下文重定向 PC,从而修复 arm64e 作用域恢复。
  • darwin:操作当前任务时跳过 pid_for_task(),省去一次 Mach 往返。
  • process-darwin:在较新的 arm64e 系统上从进程外读取 dyld 镜像元数据时剥离 PAC, 并妥善处理 NULL 读取。
  • process-darwin:容忍 sysctlbyname("kern.version") 在受限 XPC 沙箱中失败。
  • arm32-relocator:重定位 B<cond> 时保留条件码。
  • meson:在没有 libsoup 的 barebone 目标上跳过 inspector。
  • vapi:绑定 gum_memory_allocate() 系列 API。