新一轮改进与修复进一步提升了 Frida 的稳定性和性能,感谢 @mrmacete 提供宝贵反馈。本次更新如下:

  • gumjs:通过 idle source 延迟 unref,修复 Module 终结器中的崩溃。这既避免了 QuickJS 挂起/恢复补丁不支持从终结器调用所导致的问题,也省去了大量模块销毁期间反复挂起和恢复 JS 执行的开销。更好的长期方案是引入 ModuleObserver 管理 Module 生命周期,并在模块添加或移除时发出信号。

  • module:为所有 Module 对象使用同一把锁,加快 NativeModule 生命周期处理。此更改提升了性能;待 GLib 静态分配清理补丁改用更适合跟踪互斥锁的数据结构后,我们会再次审视这一方案。