Frida
Frida is a dynamic instrumentation toolkit created by Norwegian software developer Ole André Vadla Ravnås. The core repositories that underpin the project were created on GitHub in April 2013, with language bindings such as frida-python following in 2014. The project describes its own aim plainly: to let developers, reverse engineers, and security researchers "inject your own scripts into black box processes," hooking any function or spying on cryptographic APIs with no source code needed. The toolkit is released as free and open-source software.
Dynamic instrumentation refers to observing and modifying a program's behavior while it actually runs, rather than analyzing a static binary. Before Frida, this typically meant writing custom, low-level, platform-specific hooking code for each target process and architecture. Frida's novelty was packaging this capability behind a scriptable, cross-platform interface: its C core injects a JavaScript engine into the target process, and researchers write hook logic in ordinary JavaScript that can read and write memory and intercept function calls. Frida's own documentation describes this design philosophy as being "Greasemonkey for native apps."
Importance in Mobile Security Research
Frida's cross-platform, no-source-required hooking became particularly consequential for mobile application security. On iOS and Android, researchers commonly need to inspect or alter an app's runtime behavior despite having no access to its source. Two techniques in particular became closely associated with the tool: bypassing SSL/TLS certificate pinning (so a proxy like Burp Suite can intercept otherwise-pinned traffic) and bypassing jailbreak or root detection. These use cases are documented extensively in the OWASP Mobile Application Security Testing Guide.
Open-Source Model and Legacy
Frida has remained free software throughout its life, with development happening in the open on GitHub and a large ecosystem of community-built tools layered on top of it, including Objection. Its legacy is as the tool that made runtime, cross-platform, script-driven instrumentation broadly accessible, shifting a technique once reserved for specialists into a routine step in modern application security testing.
Timeline
- 2013-04-10The frida-core and frida-gum repositories, the C core of the project, are created on GitHub.
- 2014-05-13The first public frida-python binding release is published.
- Type
- Tool
- Era
- 2013-Present
- Key date
- 2013-04-10
- Tags
- dynamic instrumentation, reverse engineering, mobile security, open source