frida-core
April 10, 2026 ยท View on GitHub
Frida core library.
- 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.
Binaries
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.
Distro Packaging
For building a shared library suitable for distro packaging:
$ ./configure --enable-shared --without-prebuilds=sdk && make
This builds libfrida-core-1.0.so against system dependencies,
while frida-agent.so is built using Frida's SDK (with its GLib
fork, needed for the agent's inject/unload lifecycle).
Prerequisites on Fedora:
$ sudo dnf install libgee-devel json-glib-devel \
libsoup3-devel libunwind-devel libdwarf-devel \
libnice-devel ngtcp2-crypto-ossl-devel
Prerequisites on Ubuntu:
$ sudo apt install libgee-0.8-dev libjson-glib-dev \
libsoup-3.0-dev libunwind-dev libdwarf-dev \
libnice-dev libngtcp2-crypto-ossl-dev
Prerequisites on macOS:
$ brew install libgee json-glib libsoup libnice capstone
Internals
For a higher level view of the internals, check out the architecture diagram and its links to the different parts of the codebase.