Frida Overview
- Android
- Android Examples
- Best Practices
- Bridges
- Building
- C API
- Contributing
- Footprint
- frida CLI
- frida-discover
- frida-kill
- frida-ls-devices
- frida-ps
- frida-trace
- Functions
- Gadget
- Go API
- GSoC Ideas 2015
- GSoD Ideas 2023
- gum-graft
- Hacking
- History
- Installation
- iOS
- iOS Examples
- JavaScript API
- JavaScript Examples
- Linux Examples
- macOS Examples
- Messages
- Modes
- Presentations
- Quickstart
- Session Initialization Primer
- Stalker
- Swift API
- Troubleshooting
- Windows Examples
Frida Documentation Overview
What is Frida?
Frida is a dynamic code instrumentation toolkit that lets you inject snippets of JavaScript or your own library into native applications at runtime.
- Supported platforms: Windows, macOS, GNU/Linux, iOS, watchOS, tvOS, Android, FreeBSD, QNX
- Analogy: “Greasemonkey for native apps”
- Core language: C, with QuickJS injected into target processes
- Scripting language: JavaScript (runs inside the target process with full memory and function access)
- Host-side language: Python (primary), plus Node.js, Swift, .NET, Qml, Go, C — or any language via custom bindings
- Communication: Bidirectional channel between the host app and the JS runtime inside the target
Language Bindings
Additional bindings for other languages/environments are straightforward to build on top of the C API.
Architecture
Host process (Python/Node/etc.)
│
│ frida Python/language binding
│
▼
Frida C core
│
│ injects QuickJS + Frida runtime
│
▼
Target process (native app)
└─ JavaScript executes with:
- Full memory read/write access
- Function hooking (interceptor)
- Native function calls
- Bidirectional messaging back to host
Key Use Cases
| Use Case | Description |
|---|---|
| Protocol reverse engineering | Trace encrypted network APIs on iOS/Android apps where Wireshark cannot decrypt traffic |
| Remote diagnostics | Attach to deployed desktop apps without rebuilding — add logging via a Python script |
| Protocol manipulation | Build a Wireshark-like tool that can also intercept and mutate function calls |
| Black-box testing | Inject test logic into production binaries without modifying source code |
Error Safety
Frida catches JavaScript errors and surfaces them as exceptions rather than crashing the target process. This makes iterative scripting safe.
Documentation Sections
| Section | Contents |
|---|---|
| Getting Started | Installation, quickstart |
| Tutorials | Platform-specific guides |
| Examples | Windows, macOS, Linux, iOS, Android code samples |
| Tools | frida, frida-trace, frida-ps, frida-ls-devices, frida-kill, frida-discover CLI reference |
| API Reference | JavaScript API, Python API, C API, Swift API, Go API |
| Miscellaneous | Stalker (code coverage/tracing engine), Gadget (no-jailbreak injection), Gum, messages protocol |