
AperiSolve v3.7.4
Автоматизированная платформа стегоанализа, которая обнаруживает скрытые данные в изображениях с помощью 16 параллельных анализаторов, визуализации битовых слоев и встроенной вики для CTF-соревнований и криминалистических расследований.
Aperi'Solve
Попробуйте сейчас: https://www.aperisolve.com
Поддержите Aperi'Solve:
Aperi'Solve — это открытая веб-платформа для стегоанализа, которая выполняет автоматический анализ изображений для обнаружения и извлечения скрытых данных с помощью распространённых инструментов и техник стеганографии.
Ключевые возможности
- Визуализация каждого битового слоя (LSB и других слоёв) для каждого канала изображения (R/G/B/Alpha).
- Перераспределение цветов (случайные варианты палитры с 8 сгенерированными вариантами)
- Запускает 16 анализаторов параллельно и отображает их вывод, с бейджами
успеха/отсутствия результата для каждого инструмента и загрузкой извлечённых файлов в один клик:
- binwalk (встроенные архивы)
- exiftool (метаданные и геолокация)
- file (определение MIME-типа и формата)
- GraphicsMagick identify (информация и свойства изображения)
- foremost (извлечённые файлы)
- jsteg (извлечение LSB из JPEG)
- jpseek / jphide (извлечение стеганографии JPEG, с паролем)
- openstego (извлечение с паролем)
- outguess (извлечение с паролем, глубокий анализ)
- pcrt (проверка и восстановление PNG)
- pngcheck
- steghide (извлечение с паролем)
- strings
- zsteg (извлечение текста/данных из LSB)
- Встроенная вики (
/wiki): руководство по стеганографии в стиле HackTricks — методология триажа, шпаргалка с деревом решений, страницы техник для каждого носителя (изображение, аудио, текст, файлы) и руководство по каждому анализатору, написанные в Markdown. - Интернационализация: интерфейс доступен на английском, французском,
испанском, немецком, русском, китайском и португальском языках по URL с
языковым префиксом (
/fr/,/es/, …). - Архитектура очереди задач для выноса тяжёлых/медленных анализаторов (Redis + фоновые воркеры).
- Кэш результатов по содержимому (content-addressed), HTTP-кэширование и ограничение частоты запросов для каждого эндпоинта.
- Результаты временно хранятся для последующего просмотра и загрузки, а затем автоматически удаляются по расписанию.
Добавление анализатора
Добавление анализатора сводится к одному файлу: унаследуйте класс SubprocessAnalyzer, задайте несколько атрибутов класса (name, has_archive, needs_password, deep_only, display_order) и установите инструмент в Dockerfile. Список запуска воркером, список разрешённых для скачивания файлов и порядок отображения во фронтенде формируются автоматически. См. docs/adding-analyzer.md.
Быстрый старт (Docker)
Если вы хотите разместить собственную версию https://www.aperisolve.com/.
Требуется: Docker + Docker Compose.
git clone https://github.com/Zeecka/AperiSolve.git
cd AperiSolve
cp .env.example .env
docker compose up -d
Затем откройте адрес: http://localhost:5000/
Реклама и аналитика отключены по умолчанию; каждая интеграция (CUSTOM_EXTERNAL_SCRIPT, GOOGLE_ADS_TXT, SITE_BASE_URL, Sentry) подключается только по желанию через переменные окружения, описанные в .env.example. Приложение никогда не внедряет рекламную разметку самостоятельно: CUSTOM_EXTERNAL_SCRIPT загружает скрипт AdSense, а размещение оставлено на Auto ads.
Архитектура
Стек запускается как сервисы Docker Compose:
- web — Flask-приложение, обслуживаемое gunicorn (шаблоны Jinja + фронтенд на чистом JavaScript).
- worker — RQ-воркер, который запускает анализаторы для каждой отправки, распределяя по одному потоку на инструмент.
- cron — планировщик RQ cron, который выполняет очистку по сроку хранения вне пути обработки запросов.
- initdb — одноразовый сервис, который создаёт таблицы и предварительно заполняет базу восстановления контрольных сумм IHDR CRC.
- postgres — хранит метаданные изображений и статус отправок.
- redis — брокер RQ (БД 0) и хранилище ограничителя частоты запросов (БД 1).
- rqdashboard — мониторинг очередей, привязан к localhost:9181.
Такое разделение изолирует тяжёлые инструменты (binwalk, foremost, zsteg и т.д.) и не даёт блокировать web-воркер. Идентичные отправки дедуплицируются по хешу содержимого, а производные изображения кэшируются с долгоживущими неизменяемыми HTTP-заголовками, поэтому повторный трафик обходится дёшево.
Документация
- docs/adding-analyzer.md — добавление нового анализатора.
- docs/deploy.md — процесс продакшен-деплоя на основе тегов.
- CONTRIBUTING.md — настройка разработки, тесты, страницы вики и переводы.
Тестирование
uv sync --extra dev
uv run pytest -q # unit tests (no services needed)
# end-to-end analyzer tests through the running app:
docker compose -f compose.dev.yml up -d
uv run pytest tests/test_webapp_analyzers.py -v
Дорожная карта
См. Issues.
Участие в разработке
См. CONTRIBUTING.md.
Безопасность
[!WARNING] Если вы обнаружили проблему безопасности, сообщите о ней лично владельцу репозитория, а не через публичный issue.
Благодарности
Спасибо спонсорам:
Спасибо участникам:
- Zeecka - (автор)
- aradhyacp
- Philip Zimmermann
- abneeeees
Спасибо сообществу открытого ПО: binwalk, exiftool, GraphicsMagick identify, foremost, jsteg, jphide/jpseek, openstego, outguess, pcrt, pngcheck, steghide, strings, zsteg, ...