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

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

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

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

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

Категории

Все категории
Loading categories
BreakEscape — Монтируемый движок на Rails, предоставляющий 24+ сценариев кибербезопасных квест-комнат со случайными паролями, JIT-скомпилированными диалогами NPC и RESTful API для управления состоянием игры. Разработан для практического обучения безопасности. | Kitploit
Инструменты/GitHubGitHub/cliffe/breakescape
Веб-безопасностьCTFТестирование на ПроникновениеОбучение и ОбразованиеУчебные Маршруты и КурсыЛаборатории и Практика
GitHubcliffe/breakescape

BreakEscape

Монтируемый движок на Rails, предоставляющий 24+ сценариев кибербезопасных квест-комнат со случайными паролями, JIT-скомпилированными диалогами NPC и RESTful API для управления состоянием игры. Разработан для практического обучения безопасности.

Репозиторий
6248 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Игровой движок BreakEscape для Rails

Обучающая кибербезопасности игра в жанре escape room в виде подключаемого Rails Engine.

Возможности

  • 24+ сценариев escape room по кибербезопасности
  • Отслеживание прогресса на стороне сервера с помощью схемы из 2 таблиц
  • Случайные пароли для каждого экземпляра игры через ERB
  • JIT-компиляция скриптов Ink для диалогов NPC
  • Полиморфная поддержка игроков (User/DemoUser)
  • Авторизация через Pundit
  • RESTful API для управления состоянием игры
  • Состояние, сохраняемое на основе сессии

Установка

В вашем Gemfile:

root@kitploit:~
gem 'break_escape', path: 'path/to/break_escape'

Затем:

root@kitploit:~
bundle install
rails break_escape:install:migrations
rails db:migrate
rails db:seed  # Опционально: создаёт миссии из сценариев

Монтирование в хост-приложении

В вашем config/routes.rb:

root@kitploit:~
mount BreakEscape::Engine => "/break_escape"

Использование

Автономный режим (разработка)

root@kitploit:~
export BREAK_ESCAPE_STANDALONE=true
rails server
# Перейдите на http://localhost:3000/break_escape/

Встроенный режим (продакшн)

Монтируется в Hacktivity или другое Rails-приложение. Движок будет использовать current_user хост-приложения через Devise.

Конфигурация

root@kitploit:~
# config/initializers/break_escape.rb
BreakEscape.configure do |config|
  config.standalone_mode = false  # true для разработки
  config.demo_user_handle = 'demo_player'
end

Схема базы данных

  • break_escape_missions — метаданные сценария (name, display_name, published, difficulty)
  • break_escape_games — состояние игрока + снимок сценария (JSONB)
  • break_escape_demo_users — только для автономного режима (опционально)

API Endpoints

  • GET /games/:id/scenario — JSON сценария (сгенерирован ERB)
  • GET /games/:id/ink?npc=X — скрипт NPC (JIT-компилирован из .ink)
  • GET /games/:id/bootstrap — начальные данные игры
  • PUT /games/:id/sync_state — синхронизация состояния игрока
  • POST /games/:id/unlock — проверка попытки разблокировки
  • POST /games/:id/inventory — обновление инвентаря

Архитектура

Генерация сценариев ERB

Сценарии хранятся как шаблоны .json.erb и рендерятся по запросу со случайными значениями:

  • <%= random_password %> — генерирует уникальный пароль для каждой игры
  • <%= random_pin %> — генерирует уникальный 4-значный PIN
  • <%= random_code %> — генерирует уникальный шестнадцатеричный код

JIT-компиляция Ink

Скрипты диалогов NPC компилируются при первом запросе (~300мс):

  1. Проверить, существует ли .json и новее ли он, чем .ink
  2. При необходимости запустить inklecate для компиляции
  3. Кэшировать скомпилированный JSON для последующих запросов

Управление состоянием

Состояние игрока хранится в колонке JSONB:

  • Текущая комната и разблокированные комнаты
  • Инвентарь и собранные предметы
  • Встречи с NPC
  • Глобальные переменные (синхронизируются с клиентом)
  • Здоровье и состояние мини-игр

Тестирование

CI

Тесты запускаются автоматически на GitHub Actions. Зафиксированный Gemfile.lock фиксирует точные версии используемых гемов.

Локально с доступом к сети

root@kitploit:~
bundle install
bundle exec rails db:create db:migrate RAILS_ENV=test
bundle exec rails test

Локально без доступа к сети

Движок поставляется со скриптом bin/setup, который настраивает bundle из соседнего репозитория Hacktivity (который уже содержит все необходимые гемы в vendor):

root@kitploit:~
# Из корня BreakEscape — Hacktivity должен находиться в ../Hacktivity
bin/setup
bundle exec rails test

# Если Hacktivity в другом месте, установите HACKTIVITY_DIR:
HACKTIVITY_DIR=/path/to/Hacktivity bin/setup

bin/setup копирует разрешенные .gem файлы в vendor/cache/ и запускает bundle install --local. Директории vendor/cache/ и vendor/bundle/ игнорируются git; фиксируется только Gemfile.lock.

Документация

Смотрите HACKTIVITY_INTEGRATION.md для руководства по интеграции.

Благодарности

Большое спасибо всем, кто внес вклад в проект. Обратитесь к истории GitHub.

  • Этот проект поддерживается грантом Cyber Security Body of Knowledge (CyBOK) по CyBOK 1.1 (2023-2024).
  • Этот проект поддерживается грантом Cyber Security Body of Knowledge (CyBOK) по CyBOK 1.1 (2024-2025).
  • Этот проект поддерживается грантом Cyber Security Body of Knowledge (CyBOK) по Security-Informed Safety (2025-2026).
Скачать инструмент