Tool
Fermion
Ruben Boonen's Electron desktop application that wraps frida-node and the Monaco editor into one window for writing, injecting and refining Frida scripts. The editor brings linting, IntelliSense and Frida API type definitions, a device menu reaches local, USB and remote Frida servers to attach to or spawn processes, scripts reload in the target with a keyboard shortcut and their output appears beside the code. A prototype CALL tracer follows every call a thread makes from a chosen pointer or module symbol until it returns and renders the result as a Graphviz SVG graph, and Frida's JavaScript API documentation is built in.
- Targets
- App · Binary
- Category
- Debugging and dynamic analysis
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- Latest release at review: v1.9.3, published 2023-04-20 by the repository's CI with zipped Windows, Linux and macOS builds, pinning Electron 21.0.0, Frida 16.0.17 and frida-gum types 18.3.1. Every later commit, up to the reviewed master commit of 2025-03-20, is an automated keepalive commit, and the release workflow builds only when the package version changes, so the app has not followed the Frida 17 series (17.24.3 at review).
- Running from source needs Node.js and npm: in the Fermion folder, set npm_config_runtime=electron and npm_config_target=21.0.0, then run npm install and npm start; release packages are built with electron-packager, and the CI uses Node 16. Remote and mobile targets need a reachable Frida server, which the README says is often detected automatically over USB or in emulators such as Genymotion, or can be given as an IP address and port.
- On Windows, attaching to SYSTEM processes needs Fermion running as Administrator with SeDebugPrivilege, because the README says running it as SYSTEM has frozen it since Electron 8; on Linux, attaching may need root or a relaxed kernel.yama.ptrace_scope. The README calls the tracer a prototype whose window can lag on large graphs and which can make the traced process unstable.
- The repository commits 22 example Frida scripts, most of them hooks on Windows APIs, a Graphviz library compiled to WebAssembly (Fermion/pages/graphvizlib.wasm) for rendering traces, and bundled jQuery, Semantic UI (with Lato fonts), Split.js and Tailwind CSS assets. Users supply their own devices, processes and apps.
- BSD-3-Clause (Copyright 2019 Ruben Boonen); bundled frameworks and fonts keep their own licenses.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · FuzzySecurity/Fermion · Revision 79b2643
- CHANGELOG.txt GitHub · FuzzySecurity/Fermion · Revision 79b2643
- Fermion/package.json GitHub · FuzzySecurity/Fermion · Revision 79b2643
- .github/workflows/auto-update.yml GitHub · FuzzySecurity/Fermion · Revision 79b2643
- .github/workflows/populate_variables.py GitHub · FuzzySecurity/Fermion · Revision 79b2643
- Examples GitHub · FuzzySecurity/Fermion · Revision 79b2643
- Fermion/pages GitHub · FuzzySecurity/Fermion · Revision 79b2643
- LICENSE GitHub · FuzzySecurity/Fermion · Revision 79b2643
- https://github.com/FuzzySecurity/Fermion/releases/tag/v1.9.3
- https://github.com/frida/frida/releases/tag/17.24.3
More in Native binaries
- Ghidrathon · Tool
- diStorm3 · Tool
- ProbeDroid · Tool
- Fridump · Tool
- Redress · Tool
- ghidra-nanomips · Tool