frida/frida-gum
FreeCross-platform instrumentation and introspection library written in C
About frida/frida-gum
frida-gum is a cross-platform instrumentation and introspection library written in C, providing a powerful low-level API for dynamic analysis, reverse engineering, and performance profiling. It includes an inline hooking engine (Interceptor), stealthy code tracing (Stalker), memory monitoring (MemoryAccessMonitor), and comprehensive introspection capabilities such as enumerating running threads, loaded modules (imports, exports, symbols), memory scanning, DebugSymbol lookups, and backtracer implementations. The library supports code generation and relocation for multiple architectures (x86, ARM, Thumb, ARM64, MIPS) and offers helper libraries for heap allocation tracking and profiling. It is consumed by frida-core through its JavaScript bindings, GumJS.
Key Features
Pros & Cons
- Cross-platform support (Windows, macOS, Linux, iOS, Android, etc.)
- Stealthy and low-overhead instrumentation
- Comprehensive introspection capabilities
- Rich code generation and relocation API for multiple architectures
- Integrates with frida-core's JavaScript bindings for high-level scripting
- Kernel state introspection currently limited to iOS
- Requires C programming skills; not beginner-friendly
- Primarily a low-level library; higher-level use cases need additional layers (GumJS)
- Documentation may be sparse for some advanced features