Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Fermion — Fermion — электронная обёртка для Frida и Monaco. | Kitploit
Инструменты/GitHubGitHub/fuzzysecurity/fermion
Безопасность AndroidДинамический анализ (песочница)Динамический анализ кода (DAST)Пентестинг мобильных приложенийОбратная инженерияОтладчикиАнализ Бинарных Файлов
GitHubfuzzysecurity/fermion

Fermion

Fermion — электронная обёртка для Frida и Monaco.

Репозиторий
7008391 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CI stars forks release frida-node frida-gum

Fermion

Fermion — это приложение на Electron, которое оборачивает frida-node и monaco-editor. Оно предоставляет полностью интегрированную среду для прототипирования, тестирования и оттачивания Frida-скриптов через единый интерфейс. С интеграцией Monaco приходят все функции, которые вы ожидаете от Visual Studio Code: линтинг, IntelliSense, горячие клавиши и т.д. Кроме того, Fermion включает определение языка TypeScript для Frida API, поэтому писать Frida-скрипты легко.

Что в имени: Фермион может быть элементарной частицей, такой как электрон, или составной частицей, такой как протон. Фермионы включают все кварки и лептоны, а также все составные частицы, состоящие из нечётного числа этих частиц, например все барионы и многие атомы и ядра.

Как получить Fermion?

Запуск Fermion из исходников

Скачайте репозиторий и перейдите в папку Fermion в терминале. Затем задайте следующие переменные окружения.

root@kitploit:~
# Windows
set npm_config_runtime=electron
set npm_config_target=21.0.0

# Linux / OSX
export npm_config_runtime=electron
export npm_config_target=21.0.0

После этого установите пакеты, необходимые для запуска Fermion:

root@kitploit:~
npm install

Когда установка завершится, вы можете запустить Fermion, выполнив:

root@kitploit:~
npm start

Сборка релизного пакета

Выполните описанные выше действия, а затем выполните в терминале следующую команду:

root@kitploit:~
# Windows
electron-packager . --icon .\src\images\fermion-ico.ico

# Linux
electron-packager . --icon ./src/images/fermion-ico.png

# OSX
electron-packager . --icon ./src/images/fermion-ico.icns

Релизы

Вы можете получить последнюю готовую сборку Fermion для x64 Windows и Linux в релизах.

Примечания к FAQ

Windows

  • В: Мне нужно внедриться в процесс уровня SYSTEM, как это сделать?
    • О: Раньше можно было использовать такие инструменты, как psexec, для запуска Fermion от имени SYSTEM, однако начиная с Electron v8 это приводит к зависанию Fermion. На самом деле вам нужно, чтобы Fermion запускался от имени администратора и имел привилегию SeDebugPrivilege. В качестве обходного пути вы можете запустить PowerShell от имени администратора и использовать его для запуска Fermion.

Linux

  • В: Не получается подключиться к запущенному процессу?
    • О: Системные ограничения могут препятствовать подключению; обычно в Fermion появляется сообщение, объясняющее, в чём проблема и как её решить. Однако в общем случае вы можете запустить Fermion или Frida Server от имени root либо выполнить следующую команду: sudo sysctl kernel.yama.ptrace_scope=0.

Общее

  • В: Я хочу собрать собственную версию Fermion на основе новой версии Frida/Electron. Как узнать, какие prebuild’s существуют на данный момент?

    • О: Вам стоит посмотреть здесь. Вы можете проверить версию сборки по умолчанию в ELECTRON_TARGETS_DEFAULT и ELECTRON_TARGETS_FREEBSD соответственно.
  • В: Я хочу просмотреть/изменить/обновить определения типов, используемые в редакторе Monaco. Как это сделать?

    • О: Теперь это обрабатывается в процессе сборки, поэтому ваши языковые определения всегда должны быть актуальными. Если вы хотите отредактировать языковые определения приложения вручную, вы можете найти их здесь: node_modules/@types/frida-gum/index.d.ts.
  • В: Почему у тебя нет стабильного trace, чувак (╯°□°)╯︵ ┻━┻

    • О: Трассировка вызовов требует много ресурсов. В большинстве случаев она работает нормально, но если вы трассируете hot pointer и/или трассировка создаёт графы с тысячами узлов, то, скорее всего, trace window будет подтормаживать при получении данных. Кроме того, как и любой вид трассировки, это может вызывать нестабильность процесса, сбои или зависания.

О проекте

Пример работы Fermion вы можете увидеть ниже; в данном случае он инструментирует kernel32!ReadFile.

Fermion

Fermion поддерживает автодополнение, линтинг и символы Frida API.

Help

Fermion может подключаться к серверу Frida для отладки удалённых приложений с помощью контекстного меню device. Во многих случаях, например при отладке через USB или при подключении к мобильным приложениям через эмуляторы вроде genymotion, Fermion автоматически обнаружит доступный сервер. Однако также можно указать удалённый сервер, используя комбинацию IP и Port.

Server

Fermion имеет встроенную поддержку трассировки потоков CALL tracing.

Trace

Это может работать не совсем так, как вы ожидаете. Когда вы задаёте pointer или комбинацию module/Symbol, трассировщик выполняет attach к этому месту, и каждый раз, когда thread выполняет код в этом месте, он начинает трассировать все инструкции CALL, которые поток выполняет, пока не вернётся обратно. Это означает, что разные выполнения могут генерировать разные графы; это также означает, что вы можете не увидеть всё, что делает функция (например, если внутри функции порождается другой поток).

SVG

Fermion преобразует эти трассировки в формат Graphviz SVG с помощью dot, который вы затем можете исследовать. Это функция, которая иногда оказывается полезной при исследовательской работе (Что делает функция? Насколько сложно её выполнение?). Тем не менее, это prototype-функция, которую я построил поверх Fermion, и ей, вероятно, нужно ещё немного доработки, чтобы стать более готовой к продакшену.

Fermion также имеет встроенную документацию по JavaScript API Frida. Как и все остальные, я не всегда помню, как всё работает, а наличие документации в приложении избавляет от необходимости держать открытым окно браузера.

Docs

Примечания

Журнал изменений

Более подробную информацию об изменениях в конкретных версиях вы найдёте в журнале изменений.

Призыв к действию

Если вы интегрировали Fermion в свой рабочий процесс и находите его полезным, я призываю вас создавать pull requests, отправлять отчёты об ошибках и запрашивать новые функции для улучшения приложения. Я не совсем Node-разработчик, поэтому уверен, что люди найдут способы оптимизировать и переработать некоторые компоненты.

Дорожная карта

  • Реализовать более полный интерфейс менеджера устройств.
  • Редизайн UI.
  • Оценить спрос на дополнительные нативные инструменты на базе Fermion и добавить их.
  • Расширить менеджер устройств, чтобы задействовать новые возможности, интегрированные в Frida v15.0+.

Особая благодарность

Я просто хочу выразить особую благодарность!

  • Огромное спасибо Ole André V. Ravnås за всю его работу над Frida и за большое терпение в ответах на мои дилетантские вопросы о Frida, NodeJS и Monaco!
  • Также привет mattahan. Я использую иконку Buuf для Windows-пакета Fermion. Уверен, что за эти годы мы все пользовались некоторыми из его иконок на NIX.
  • Спасибо @MiscMisty, @lez0sec, @berkayyildi за вклад времени/кода в Fermion!
Скачать инструмент