这是一个错误修复版本,其中还加入了一个崭新的内存扫描辅助函数,以及一些 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。
oleavr