这是一个错误修复版本,其中还加入了一个崭新的内存扫描辅助函数,以及一些 Darwin、Android 和构建系统修复。非常感谢 @cylentsec 和 @AeonLucid 的贡献。

  • darwin:在 launchd 代理中支持 ElleKit/palera1n。现在会检测 ElleKit 的注入器门函数, 并让它对 Frida 管理的 PID 返回 false,从而防止已启动进程遭到重复注入。感谢 @cylentsec!
  • darwin:恢复选择性异常掩码,并将非断点异常转发给系统处理程序,同时保持现有 arm64e PAC 修正路径有效,以此修复 ElleKit 的进程启动兼容性。修复 #1239。感谢 @cylentsec!
  • android:修复 Nothing OS 上的辅助程序初始化。感谢 @AeonLucid!
  • gumjs:公开 Memory.findPointers(),其底层由新的 gum_memory_find_pointers() 辅助函数支持。 它提供一种专门且经过 SIMD 加速的方式,可在一个或多个范围中查找与一个或多个值匹配的 指针对齐字。
  • memory:添加 gum_memory_find_pointers(),支持并行范围分片以及 SSE2、NEON 等各架构内核。
  • interceptor:修复 x86 stdcall 离开时的回收问题。由被调用方清理栈的返回可能使调用栈无法追踪 正在返回的帧,进而发生崩溃。
  • process:拒绝过期的 Darwin 文件映射结果,修复 Rosetta 下匿名区域被错误归属于无关文件映射的问题。
  • vapi:将 gum_darwin_read 的 length 绑定为 gsize,避免向 4 字节槽位写入 8 字节数据。
  • gir:确保内省辅助可执行文件在 g-ir-scanner 尝试运行它之前完成链接,修复 Ubuntu noble 暴露出来的竞争条件。
  • ci:由于 GitHub 的 Intel macOS runner 已下线,现在通过 Rosetta 在 arm64 主机上构建, 继续维持 macOS/x86_64 覆盖。
  • build:修复针对 arm64e 构建时的警告。
  • bindings:将 @types/frida-gum 升级到 19.4.0。