<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://frida.re/feed.xml" rel="self" type="application/atom+xml" /><link href="https://frida.re/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-07-22T00:32:51+02:00</updated><id>https://frida.re/feed.xml</id><title type="html">Frida • A world-class dynamic instrumentation toolkit</title><subtitle>Observe and reprogram running programs on Windows, macOS, GNU/Linux, iOS, watchOS, tvOS, Android, FreeBSD, and QNX</subtitle><entry><title type="html">Frida 17.16.4 Released</title><link href="https://frida.re/news/2026/07/22/frida-17-16-4-released/" rel="alternate" type="text/html" title="Frida 17.16.4 Released" /><published>2026-07-22T00:30:23+02:00</published><updated>2026-07-22T00:30:23+02:00</updated><id>https://frida.re/news/2026/07/22/frida-17-16-4-released</id><content type="html" xml:base="https://frida.re/news/2026/07/22/frida-17-16-4-released/">&lt;p&gt;Quick bug-fix release to restore some Python binding API and typing surface
area that regressed in the recent bindgen rewrite:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;bindgen: Restore the remaining public names. The cancellable decorator,
RPCResult, make_rpc_call_request(), make_auth_callback(), and
ScriptExportsAsync are now exposed again from frida.core.&lt;/li&gt;
  &lt;li&gt;bindgen: Generate signal callback overloads for the facade’s on()/off()
helpers. This means malformed signal handlers should now be caught by type
checkers instead of silently passing as any callable.&lt;/li&gt;
  &lt;li&gt;bindgen: Restore missing facade members omitted by the .gir-based generator:
get_device(), get_device_matching(), enumerate_devices(), shutdown(),
Cancellable.connect(), and Cancellable.disconnect().&lt;/li&gt;
  &lt;li&gt;bindgen: Restore the facade typing surface. The generated package once again
ships the expected type aliases and annotations, including module functions,
read-only options properties, and the _frida.pyi entries that went missing.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.16.3 Released</title><link href="https://frida.re/news/2026/07/20/frida-17-16-3-released/" rel="alternate" type="text/html" title="Frida 17.16.3 Released" /><published>2026-07-20T17:56:10+02:00</published><updated>2026-07-20T17:56:10+02:00</updated><id>https://frida.re/news/2026/07/20/frida-17-16-3-released</id><content type="html" xml:base="https://frida.re/news/2026/07/20/frida-17-16-3-released/">&lt;p&gt;Another quick bug-fix release, addressing two issues in the Python bindings:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;bindgen: Fixed marshalling of option keyword arguments. None values are now
omitted instead of being passed to typed setters.&lt;/li&gt;
  &lt;li&gt;bindgen: Fixed collection-valued keyword arguments by mapping them to the
appropriate select_ or add_ methods while traversing the parent chain.
This affects specs, omits, externals, PIDs, and identifiers.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.16.2 Released</title><link href="https://frida.re/news/2026/07/19/frida-17-16-2-released/" rel="alternate" type="text/html" title="Frida 17.16.2 Released" /><published>2026-07-19T22:25:34+02:00</published><updated>2026-07-19T22:25:34+02:00</updated><id>https://frida.re/news/2026/07/19/frida-17-16-2-released</id><content type="html" xml:base="https://frida.re/news/2026/07/19/frida-17-16-2-released/">&lt;p&gt;Another quick bug-fix release, fixing an issue where &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;frida-helper&lt;/code&gt; on Darwin
and Linux kept the embedder’s stdio pipes open.&lt;/p&gt;

&lt;p&gt;The helper previously inherited these streams at launch so they could later be
used by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Device#spawn()&lt;/code&gt; with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stdio=&apos;inherit&apos;&lt;/code&gt;. The streams are now passed to
the helper with each such request instead.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;darwin: Redirect the helper’s own stdin, stdout, and stderr to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/dev/null&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;linux: Apply the same fix as on Darwin.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.16.1 Released</title><link href="https://frida.re/news/2026/07/18/frida-17-16-1-released/" rel="alternate" type="text/html" title="Frida 17.16.1 Released" /><published>2026-07-18T13:30:39+02:00</published><updated>2026-07-18T13:30:39+02:00</updated><id>https://frida.re/news/2026/07/18/frida-17-16-1-released</id><content type="html" xml:base="https://frida.re/news/2026/07/18/frida-17-16-1-released/">&lt;p&gt;Quick bug-fix release with a couple of Darwin-focused fixes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;apple: Stop forcing the classic linker. This was a workaround for an Xcode
15.0 beta 7 issue where the modern linker over-linked libresolv. The modern
linker no longer does this, while ld-classic omits SG_READ_ONLY on
__DATA_CONST, causing newer dyld versions to reject our images.&lt;/li&gt;
  &lt;li&gt;darwin: Restrict CodeSegment to old kernels. The revived signed-dylib realize
path lets modern XNU accept our signature and map the page, which can later
panic the kernel on iOS 15.6.1 and newer. Modern kernels now fall back to
mprotect, suspending threads as before, while the signed-segment path remains
available for old jailbroken kernels that need it.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.16.0 Released</title><link href="https://frida.re/news/2026/07/17/frida-17-16-0-released/" rel="alternate" type="text/html" title="Frida 17.16.0 Released" /><published>2026-07-17T23:28:26+02:00</published><updated>2026-07-17T23:28:26+02:00</updated><id>https://frida.re/news/2026/07/17/frida-17-16-0-released</id><content type="html" xml:base="https://frida.re/news/2026/07/17/frida-17-16-0-released/">&lt;p&gt;Big release this time, with a mix of safety hardening, platform fixes, and some
API polishing. Huge thanks to &lt;a href=&quot;https://twitter.com/hsorbo&quot;&gt;@hsorbo&lt;/a&gt; and &lt;a href=&quot;https://github.com/SamSunNV&quot;&gt;@SamSunNV&lt;/a&gt; for their
contributions.&lt;/p&gt;

&lt;p&gt;Highlights include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;spawn-gating: Make it fail-safe and scoped. The system-wide Linux eBPF spawn
gater is now opt-in through the new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SpawnGatingScope&lt;/code&gt;, and all suspending
gaters now share a watchdog that disables gating and resumes everything if a
caught process is left suspended for too long. This avoids wedging process
creation system-wide when a client disappears or stops resuming spawns.&lt;/li&gt;
  &lt;li&gt;spawn-gating: Add a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;spawn_gating_disabled(reason)&lt;/code&gt; signal on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HostSession&lt;/code&gt;,
bubbled up to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Device&lt;/code&gt;, so clients can tell when the watchdog had to step in.&lt;/li&gt;
  &lt;li&gt;python: Auto-generate the Python bindings from Frida’s GIR. This also adds
support for asyncio, through the new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;frida.aio&lt;/code&gt; package.&lt;/li&gt;
  &lt;li&gt;swift: Auto-generate the Swift bindings from Frida’s GIR.&lt;/li&gt;
  &lt;li&gt;auth: Flush the pending &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;INVALID_ARGUMENT&lt;/code&gt; reply before closing the
authentication channel, so clients reliably see the token rejection instead of
a closed connection.&lt;/li&gt;
  &lt;li&gt;fruity: Fix upload injection on arm64e by applying each segment’s protection
before running threaded and chained fixups. This lets writable data segments
receive their rebased and authenticated pointers without faulting, while still
avoiding any rwx mapping. Thanks &lt;a href=&quot;https://twitter.com/hsorbo&quot;&gt;@hsorbo&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;darwin: Revive &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CodeSegment&lt;/code&gt; realization on modern iOS by emitting a modern
SHA-256 CodeDirectory with exec-segment fields and a non-empty identifier.
The implementation probes the modern flavor first, falls back to the legacy
one when needed, and caches the working strategy.&lt;/li&gt;
  &lt;li&gt;darwin: Probe &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CodeSegment&lt;/code&gt; support at runtime by patching a scratch page,
instead of relying on XNU version guesses for behavior that varies across
kernels.&lt;/li&gt;
  &lt;li&gt;gumjs: Let V8 JIT inside the iOS app sandbox by avoiding the macOS-specific
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MAP_JIT&lt;/code&gt; path on iOS and instead using Gum’s own JIT allocation path.&lt;/li&gt;
  &lt;li&gt;darwin: Fix arm64e attach crashes by signing resident notifier handler
pointers before the add-image stub branches through them.&lt;/li&gt;
  &lt;li&gt;darwin-mapper: Skip stores for threaded binds, where the resolved target
already lives in the chain processor’s symbol table and the default
segment/offset may point into read-only &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__TEXT&lt;/code&gt;. Thanks &lt;a href=&quot;https://twitter.com/hsorbo&quot;&gt;@hsorbo&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;arm64-writer: Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PACIA&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MOVK&lt;/code&gt; instruction emitters, useful for signing
pointers inline and building ptrauth discriminators in generated code.
Thanks &lt;a href=&quot;https://twitter.com/hsorbo&quot;&gt;@hsorbo&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;x86: Preserve AVX-512 state in Stalker. On AVX-512 hosts we now save and
restore the upper halves of zmm0-15, zmm16-31, and the k0-k7 opmask
registers, fixing crashes when stalking EVEX-using libc routines.&lt;/li&gt;
  &lt;li&gt;x86: Add AVX-512 CPU feature detection and writer emitters for the spills
needed by Stalker.&lt;/li&gt;
  &lt;li&gt;x86: Expose XMM registers in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CpuContext&lt;/code&gt;, backed by the live save area where
available, and add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gum_cpu_context_copy()&lt;/code&gt; plus a boxed type for safe
persistence. Thanks for the fun team-work, &lt;a href=&quot;https://twitter.com/hsorbo&quot;&gt;@hsorbo&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;interceptor: Discard hooks when a module is unloaded, without trying to
restore prologues in memory that is no longer mapped. Thanks &lt;a href=&quot;https://github.com/SamSunNV&quot;&gt;@SamSunNV&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;module-registry: Fix ELF range computation for modules whose program headers
are not mapped next to the ELF header, such as libgit2. We compute ranges
from program headers when possible and fall back to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/proc/self/maps&lt;/code&gt; only
when needed.&lt;/li&gt;
  &lt;li&gt;memory: Finish migrating internal callers to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gum_memory_allocate()&lt;/code&gt; and
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gum_memory_free()&lt;/code&gt;, and remove the old &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gum_alloc_n_pages()&lt;/code&gt; family.&lt;/li&gt;
  &lt;li&gt;windows: Fix installed-assets helper discovery by expanding &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;arch&amp;gt;&lt;/code&gt;, finding
helpers in per-architecture directories, and having the manager mint and pass
a unique rendezvous name to all helper services.&lt;/li&gt;
  &lt;li&gt;windows: Improve MSVC cross builds by keeping the arm64-&amp;gt;x86 build cross,
pointing each compiler at its own include and library paths, and preserving
the environment’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;INCLUDE&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;LIB&lt;/code&gt; for native build-machine tools.&lt;/li&gt;
  &lt;li&gt;build: Resolve GLib up front through a new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;glib.wrap&lt;/code&gt;, base in-tree payloads
on the GLib flavor, configure native languages for cross builds, and avoid
forwarding parent build-machine options into compat builds.&lt;/li&gt;
  &lt;li&gt;deps: Rebuild prebuilts with the current GitHub Actions Xcode, picking up the
updated arm64e ABI.&lt;/li&gt;
  &lt;li&gt;compiler/barebone: Bump &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@types/frida-gum&lt;/code&gt; to 19.10.0.&lt;/li&gt;
  &lt;li&gt;tests: Make the bytecode test unload its script before dropping the last
reference, fixing an intermittent teardown race under load. Thanks
&lt;a href=&quot;https://twitter.com/hsorbo&quot;&gt;@hsorbo&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.15.5 Released</title><link href="https://frida.re/news/2026/07/13/frida-17-15-5-released/" rel="alternate" type="text/html" title="Frida 17.15.5 Released" /><published>2026-07-13T12:56:02+02:00</published><updated>2026-07-13T12:56:02+02:00</updated><id>https://frida.re/news/2026/07/13/frida-17-15-5-released</id><content type="html" xml:base="https://frida.re/news/2026/07/13/frida-17-15-5-released/">&lt;p&gt;Quick bug-fix release with an Android fix from &lt;a href=&quot;https://github.com/dezige131&quot;&gt;@dezige131&lt;/a&gt;, along with
several Darwin and Gum.Memory-related improvements from &lt;a href=&quot;https://twitter.com/hsorbo&quot;&gt;@hsorbo&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;android: Tolerate transient USAP patch misses when the target process does not
have the boot image mapped.&lt;/li&gt;
  &lt;li&gt;darwin: Re-enable CodeSegment on newer kernels. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;vm_remap&lt;/code&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OVERWRITE&lt;/code&gt;
trick works again on iOS 17.6 and newer, allowing CodeSegment to be enabled
there once more.&lt;/li&gt;
  &lt;li&gt;memory: Fix a suspend deadlock in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;patch_code&lt;/code&gt;. Patches are now prepared in a
scratch buffer first, allowing the apply callback to allocate freely before
other threads are suspended for the lock-free copy back into place.&lt;/li&gt;
  &lt;li&gt;memory: Make &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;patch_code&lt;/code&gt; safer under concurrency and when failures occur. All
target pages are made writable before any bytes are committed, only modified
bytes are copied back, and pages are restored to RX before the instruction
cache is flushed.&lt;/li&gt;
  &lt;li&gt;memory: Extract the three patching strategies into dedicated helpers,
simplifying the dispatcher without changing behavior.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.15.4 Released</title><link href="https://frida.re/news/2026/07/06/frida-17-15-4-released/" rel="alternate" type="text/html" title="Frida 17.15.4 Released" /><published>2026-07-06T19:05:24+02:00</published><updated>2026-07-06T19:05:24+02:00</updated><id>https://frida.re/news/2026/07/06/frida-17-15-4-released</id><content type="html" xml:base="https://frida.re/news/2026/07/06/frida-17-15-4-released/">&lt;p&gt;Quick release with a couple of handy improvements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;gumjs: Add Checksum copy and peek methods. Thanks &lt;a href=&quot;https://github.com/mrmacete&quot;&gt;@mrmacete&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;defs: Add support for Capstone 6. Thanks &lt;a href=&quot;https://github.com/kripticni&quot;&gt;@kripticni&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;darwin-symbolicator: Add missing locking, and initialize module before
jumping to cleanup. Thanks &lt;a href=&quot;https://github.com/comex&quot;&gt;@comex&lt;/a&gt;!&lt;/li&gt;
  &lt;li&gt;qml: Suppress Qt &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;__yield&lt;/code&gt; error on recent clang.&lt;/li&gt;
  &lt;li&gt;barebone, compiler: Bump @types/frida-gum to 19.8.0.&lt;/li&gt;
  &lt;li&gt;Bump FridaCore to 17.15.3.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.15.3 Released</title><link href="https://frida.re/news/2026/06/22/frida-17-15-3-released/" rel="alternate" type="text/html" title="Frida 17.15.3 Released" /><published>2026-06-22T23:31:35+02:00</published><updated>2026-06-22T23:31:35+02:00</updated><id>https://frida.re/news/2026/06/22/frida-17-15-3-released</id><content type="html" xml:base="https://frida.re/news/2026/06/22/frida-17-15-3-released/">&lt;p&gt;Quick bug-fix release, shipped later the same day because software is hard and
apparently enjoys reminding us.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;darwin: Populate the module registry before activating the interceptor. The
first gum_interceptor_obtain() activates the unwind broker, whose backend
resolves libdyld through the module registry. Doing this before taking the
initial snapshot could re-enter an empty registry and crash on a NULL module
lookup. We now snapshot the modules first, then start change tracking.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.15.2 Released</title><link href="https://frida.re/news/2026/06/22/frida-17-15-2-released/" rel="alternate" type="text/html" title="Frida 17.15.2 Released" /><published>2026-06-22T11:46:34+02:00</published><updated>2026-06-22T11:46:34+02:00</updated><id>https://frida.re/news/2026/06/22/frida-17-15-2-released</id><content type="html" xml:base="https://frida.re/news/2026/06/22/frida-17-15-2-released/">&lt;p&gt;Quick bug-fix release, with a fix from &lt;a href=&quot;https://github.com/wave-sky&quot;&gt;@wave-sky&lt;/a&gt; for spawning processes on
Android 10:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;linux: Fix payload base selection on Android 10. Spawning processes could fail
with a remote connection error due to Android’s XOM mechanism making
libstagefright.so execute-only. We now avoid requiring read permission when
picking target libraries, consider more media shared libraries, and force
read-execute permissions so the payload can run.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry><entry><title type="html">Frida 17.15.1 Released</title><link href="https://frida.re/news/2026/06/20/frida-17-15-1-released/" rel="alternate" type="text/html" title="Frida 17.15.1 Released" /><published>2026-06-20T15:57:05+02:00</published><updated>2026-06-20T15:57:05+02:00</updated><id>https://frida.re/news/2026/06/20/frida-17-15-1-released</id><content type="html" xml:base="https://frida.re/news/2026/06/20/frida-17-15-1-released/">&lt;p&gt;Quick bug-fix release with the following fixes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;darwin: Fix an unused variable warning on non-arm64e builds.&lt;/li&gt;
  &lt;li&gt;linux: Fix musl RTLD call-site discovery when multiple GumModuleRegistry
instances are involved. We now scan the linker’s on-disk image instead of
live memory, preserving the original instructions and allowing chained
interceptors to hook the same loaded addresses.&lt;/li&gt;
&lt;/ul&gt;</content><author><name>oleavr</name></author><category term="release" /></entry></feed>