Frida core library intended for static linking into bindings.
- Lets you inject your own JavaScript instrumentation code into other processes, optionally with your own C code for performance-sensitive bits.
- Acts as a logistics layer that packages up GumJS into a shared library.
- Provides a two-way communication channel for talking to your scripts, if needed, and later unload them.
- Also lets you enumerate installed apps, running processes, and connected devices.
- Written in Vala, with OS-specific glue code in C/Objective-C/asm.
Typically used through one of the available language bindings:
E.g.:
$ pip install frida-tools # CLI tools
$ pip install frida # Python bindings
$ npm install frida # Node.js bindings
Or, for static linking into your own project written in a C-compatible language, download a devkit from the Frida releases page.
For a higher level view of the internals, check out the architecture diagram and its links to the different parts of the codebase.