Frida 17.12.0 Released ∞
release
Fresh release packing a new code-shape analysis toolbox in Gum/GumJS, along with a pile of Linux injector hardening and teardown fixes.
Highlights:
- gum: Add native control-flow graph module, including resolver-based graph construction, Cooper-Harvey-Kennedy dominators, and nearest-first dominating site enumeration.
- gumjs: Add
ControlFlowGraphandBasicBlock. - gum: Add
Process.find_function_range(). Works on stripped binaries as it does not require symbols. - gumjs: Add
Process.findFunctionRange(). - interceptor: Add per-function and per-listener flushing, allowing callers to wait for their own hooks to drain without getting stuck behind unrelated pending work.
- linux: Improve injector reliability in multi-threaded targets by walking the stack to find a hookable trigger when a sampled PC lands in a tiny syscall wrapper.
- linux: Load the agent through
/proc/<pid>/fdinstead of/proc/self/fd, so attached debuggers resolve the same object path as the target process. - linux: Restore patched trigger functions symmetrically with installation, avoiding races where another thread could execute a half-written prologue.
- linux: Capture libbpf diagnostics and include them in thrown errors instead of spilling them to stderr.
- linux: Size trigger candidates using the actual bootstrap stub, avoiding needless rejection of small but frequently executed libc routines.
- linux: Fall back to polling
/proc/<pid>/task/<tid>/syscallwhen eBPF/perf sampling is unavailable due to missing privileges. - linux: Drain the thread registry on teardown, fixing a use-after-free when threads are churning during unload.
- linux: Relocate the
start_threadhook using the new CFG machinery, so the hook lands on a safe dominating instruction instead of overwriting a live call site. - linux: Harden pthread layout detection under heavy thread churn by retrying anchor probing and lock cross-checking until they agree.
- x86: Make
can_relocate()aware of the relocation scenario, rejecting online relocations that would have to cross calls or syscall-like instructions. - meson: Build the bundled Capstone with all architectures enabled, matching the prebuilt SDK and making cross-architecture disassembly work everywhere.
- ci: Publish GObject introspection data.
- barebone/compiler: Bump
@types/frida-gumto 19.6.0.
oleavr