这次我们专注于打磨 macOS 和 iOS 支持。对于使用 spawn() 和 spawn-gating 进行早期插桩的读者,现在的情况已经好得多。
i/macOS spawn() 性能
此版本最令人兴奋的变化全部围绕性能。以前通过 Frida 启动时需要较长时间才能开始的程序, 现在应当能更快启动。这个长期瓶颈曾非常严重:库很多的应用可能因为 Frida 大幅拖慢启动 而无法成功运行。
i/macOS 与 SIGPIPE
接下来是一项针对长期可靠性问题的修复。原来我们用于 IPC 的文件描述符没有设置 SO_NOSIGPIPE, 因此有时 Frida 或目标进程中的一方会突然终止,另一方在尝试 write() 时就会被 SIGPIPE 击中。
沙箱环境,第二部分
上一个版本引入了一些大胆的新变化,以支持注入加固目标。此后,@hsorbo 和我 重新深入检查了最近的 GLib kqueue() 补丁,并修复了一些粗糙之处。我们还修复了一项回归: 通过 usbmuxd 附加到加固进程会因“connection closed”而失败。
Linux
在 Linux 和 Android 端,一些读者可能注意到线程枚举会随机失败,尤其是在繁忙的进程内。 这个问题现在终于解决了。
此外,感谢 @drosseau,我们还改进了错误处理,应当能避免在 32/64 位跨架构构建失败时引起一些困惑。
文末
这次就是这些。尽情享用!
oleavr