{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/FuzzySecurity/Fermion/blob/79b26434f85a9f4d5e812553ec8e2c08d2ab82c5/CHANGELOG.txt",
    "https://github.com/FuzzySecurity/Fermion/blob/79b26434f85a9f4d5e812553ec8e2c08d2ab82c5/Fermion/package.json",
    "https://github.com/FuzzySecurity/Fermion/blob/79b26434f85a9f4d5e812553ec8e2c08d2ab82c5/.github/workflows/auto-update.yml",
    "https://github.com/FuzzySecurity/Fermion/blob/79b26434f85a9f4d5e812553ec8e2c08d2ab82c5/.github/workflows/populate_variables.py",
    "https://github.com/FuzzySecurity/Fermion/tree/79b26434f85a9f4d5e812553ec8e2c08d2ab82c5/Examples",
    "https://github.com/FuzzySecurity/Fermion/tree/79b26434f85a9f4d5e812553ec8e2c08d2ab82c5/Fermion/pages",
    "https://github.com/FuzzySecurity/Fermion/blob/79b26434f85a9f4d5e812553ec8e2c08d2ab82c5/LICENSE",
    "https://github.com/FuzzySecurity/Fermion/releases/tag/v1.9.3",
    "https://github.com/frida/frida/releases/tag/17.24.3"
  ],
  "category": "dynamic-analysis",
  "description_en": "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.",
  "description_zh": "Ruben Boonen 开发的 Electron 桌面应用，把 frida-node 和 Monaco 编辑器整合到同一个窗口中，用于编写、注入和反复调整 Frida 脚本。编辑器提供代码检查、IntelliSense 和 Frida API 类型定义；设备菜单可连接本地、USB 和远程 Frida 服务端，附加到进程或启动新进程；脚本可用快捷键在目标中重新加载，输出显示在代码旁边。原型阶段的 CALL 追踪器从选定的指针或模块符号开始，跟踪线程发出的每一次调用直至返回，并将结果渲染为 Graphviz SVG 图；应用还内置了 Frida JavaScript API 文档。",
  "entry_url": "https://awesomerea.org/resources/fermion/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/fermion/",
  "evidence_url": "https://github.com/FuzzySecurity/Fermion/blob/79b26434f85a9f4d5e812553ec8e2c08d2ab82c5/README.md",
  "group": "tools",
  "id": "fermion",
  "json_url": "https://awesomerea.org/resources/fermion/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/fermion/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/fermion/index.md",
  "name": "Fermion",
  "name_zh": "Fermion Frida 脚本图形化开发环境",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "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."
  ],
  "requirements_zh": [
    "审阅时最新版本为 v1.9.3，由仓库 CI 于 2023-04-20 发布，附带 Windows、Linux 和 macOS 的压缩构建包，固定使用 Electron 21.0.0、Frida 16.0.17 和 frida-gum 类型定义 18.3.1。此后直到所审阅的 2025-03-20 master 提交，所有提交都是自动生成的保活提交；发布工作流只在软件包版本号变化时才构建，因此应用未跟进 Frida 17 系列（审阅时为 17.24.3）。",
    "从源码运行需要 Node.js 和 npm：在 Fermion 目录中设置 npm_config_runtime=electron 和 npm_config_target=21.0.0，然后运行 npm install 和 npm start；发行包用 electron-packager 构建，CI 使用 Node 16。远程和移动目标需要可访问的 Frida 服务端；README 称通过 USB 或在 Genymotion 等模拟器中通常可自动发现，也可手动填写 IP 地址和端口。",
    "在 Windows 上附加 SYSTEM 进程，需要以管理员身份并具备 SeDebugPrivilege 运行 Fermion，因为 README 指出自 Electron 8 起以 SYSTEM 身份运行会导致程序卡死；在 Linux 上附加进程可能需要 root 权限或放宽 kernel.yama.ptrace_scope。README 称追踪器仍是原型功能，图很大时窗口可能卡顿，还可能导致被追踪进程不稳定。",
    "仓库提交了 22 个 Frida 示例脚本（大多是对 Windows API 的 Hook）、一个编译为 WebAssembly 的 Graphviz 库（Fermion/pages/graphvizlib.wasm，用于渲染追踪结果），以及随附的 jQuery、Semantic UI（含 Lato 字体）、Split.js 和 Tailwind CSS 资源。设备、进程和应用均需用户自备。",
    "采用 BSD-3-Clause 许可（Copyright 2019 Ruben Boonen）；随附的框架和字体保留各自许可。"
  ],
  "targets": [
    "app",
    "binary"
  ],
  "url": "https://github.com/FuzzySecurity/Fermion",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
