Frida 7.0 Released ∞
release
It’s been a while since our last major release bump. This time we’re addressing the long-standing issue where 64-bit integers were represented as JavaScript Number values. This meant that values beyond 53 bits were problematic due to the fact that the underlying representation is a double.
The 64-bit types in the Memory, NativeFunction, and NativeCallback APIs are now properly represented by the newly introduced Int64 and UInt64 types, and their APIs are almost identical to NativePointer.
Now let’s cross our fingers that int64/uint64 make it into ES7.
So in closing, here’s a summary of the changes:
7.0.0:
- core: rework handling of 64-bit integers
- core: improve strictness of constructors
- core: improve QNX support
- frida-repl: update the logo
7.0.1:
- core: fix Int64/UInt64 field capacity on 32-bit architectures
7.0.2:
- core: allow Int64 and UInt64 to be passed as-is to all relevant APIs
- core: fix handling of $protocols on ObjC instances
7.0.3:
- core: fix race-condition where listener gets destroyed mid-call
- core: fix handling of nested native exception scopes
- core: improve QNX support
- frida-repl: tweak the startup message
7.0.4:
- core: massively improve the function hooking success-rate on 32-bit ARM
- core: improve the function hooking success-rate on 64-bit ARM
- core: fix the sp value exposed by Interceptor on 32-bit ARM
7.0.5:
- core: spin the main CFRunLoop while waiting for Device#resume() when spawning iOS apps, allowing thread-sensitive early instrumentation to be applied from the main thread
7.0.6:
- core: fix hooking of half-word aligned functions on 32-bit ARM
- core: fix thread enumeration on Linux
- core: add simple hexdump() API to the Script runtimes
- core: make the Duktape runtime’s CpuContext serializable to JSON
7.0.7:
- core: allow passing a NativePointer to hexdump()
7.0.8:
- core: fix handling of wrapper objects in
retval.replace()
- core: fix behavior of Memory.readUtf8String() when a size is specified
- core: add support for the new task_for_pid(0) method on the iOS 9.1 JB
- core: don’t use cbnz which is not available in ARM mode on some processors
- core: implement enumerate_threads() and modify_thread() for QNX
7.0.9:
- core: fix early crash in FridaGadget.dylib on iOS when running with ios-deploy and other environments where we are loaded before CoreFoundation
- core: run a CFRunLoop in the main thread of frida-helper on Darwin, allowing system session scripts to make use of even more Apple APIs
- core: add stream APIs for working with GIO streams, for now only exposed through UnixInputStream and UnixOutputStream (UNIX), and Win32InputStream and Win32OutputStream (Windows)
7.0.10:
- core: fix deadlock on script unload when I/O operations are pending
7.0.11:
- core: spin the main CFRunLoop while FridaGadget.dylib is blocking waiting for Device#resume(), allowing thread-sensitive early instrumentation to be applied from the main thread
- java: fix method type sanity-check
Enjoy!