Star on GitHubStar1.1k stars

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.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · FuzzySecurity/Fermion · Revision 79b2643
  2. CHANGELOG.txt GitHub · FuzzySecurity/Fermion · Revision 79b2643
  3. Fermion/package.json GitHub · FuzzySecurity/Fermion · Revision 79b2643
  4. .github/workflows/auto-update.yml GitHub · FuzzySecurity/Fermion · Revision 79b2643
  5. .github/workflows/populate_variables.py GitHub · FuzzySecurity/Fermion · Revision 79b2643
  6. Examples GitHub · FuzzySecurity/Fermion · Revision 79b2643
  7. Fermion/pages GitHub · FuzzySecurity/Fermion · Revision 79b2643
  8. LICENSE GitHub · FuzzySecurity/Fermion · Revision 79b2643
  9. https://github.com/FuzzySecurity/Fermion/releases/tag/v1.9.3
  10. https://github.com/frida/frida/releases/tag/17.24.3

More in Native binaries

All 269 entries in Native binaries

↑↓ move↵ open⌘↵ new tab