Frida 17.0.0 Release: After three years and much work, @hsorbo and the team are excited to release Frida 17.0.0.
- Runtime Bridges: Bundling the runtime bridges (frida-{objc,swift,java}-bridge) with Frida’s GumJS runtime caused issues like inertia, bloat, scalability, and discoverability. The frida.Compiler API and frida-compile CLI tool were introduced to address some of these concerns. The just-released frida-tools 14.0.0 now bakes the three bridges into its REPL and frida-trace agents. The bridges have also been migrated to ESM. Building Frida from source now has faster build times as Gum no longer depends on Gum-compile and Node.js + npm.
- Legacy-style enumeration APIs: The synchronous enumeration APIs with Sync-suffixed methods are now gone. The modern equivalent uses a for...of loop to iterate over the enumeration result. Those writing agents in TypeScript won't need to do anything if using recent typings.
- Memory read/write APIs: The old memory read/write APIs have been updated. The modern equivalents use the read and write methods directly on the NativePointer. The legacy versions have been removed from the TypeScript bindings for a long time.
- Static Module APIs: Several static Module methods are now gone, such as Module.ensureInitialized(), etc. For some methods, like Module.getSymbolByName(null, 'open'), it is now accomplished using Module.getGlobalExportByName('open'). For others, you need to look up the Module first and then access the desired property or method. The static enumeration APIs like Module.enumerateExports() have also been removed.
- Conclusion: With these changes, Frida 17.0.0 offers improved performance and a more consistent API design. Happy hacking!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。