Stego Hide Analyze Toolkit — это кроссплатформенное десктопное приложение на языке Go для анализа изображений на наличие скрытых данных (стеганографии).
Приложение предоставляет инструменты визуального анализа (тепловые карты шума) и статистические атаки (Хи-квадрат, Энтропия) для обнаружения LSB-стеганографии и других аномалий.

✨ Возможности
1. 📊 Карта пригодности (Fitness Map / Energy Analysis)
Анализирует "энергию" изображения, предсказывая значения пикселей на основе их соседей.
- Позволяет увидеть высокочастотный шум, характерный для скрытых данных.
- Интерактивность: Регулировка чувствительности и радиуса анализа в реальном времени.
2. 🛡️ Стегоанализ (Атаки)
Модульная система атак для автоматического поиска подозрительных областей.
- Хи-Квадрат (Chi-Square): Статистическая атака на последовательное встраивание данных (LSB).
- Локальная Энтропия (Spatial Entropy): Поиск областей с аномально высокой энтропией (случайностью битов).
- Визуализация: Наложение красной маски на подозрительные пиксели.
3. 🔄 Конвертер форматов
Утилита для подготовки изображений к анализу.
- Очистка метаданных путем пересохранения.
- Поддержка форматов:
BMP, JPG, PNG.
4. 🖥️ Современный UI
Интерфейс построен на библиотеке GioUI, что обеспечивает:
- Аппаратное ускорение графики.
- Единый внешний вид на Windows, Linux и macOS.
- Отсутствие тяжелых зависимостей (как Qt или Electron).
🚀 Установка и Запуск
Предварительные требования
Вам понадобится установленный Go версии 1.18 или выше.
Сборка из исходного кода
-
Клонируйте репозиторий:
git clone https://github.com/extracoding-dozen/Stego-Hide-Analyze-Toolkit.git
cd Stego-Hide-Analyze-Toolkit
-
Загрузите зависимости:
go mod tidy
-
Запустите приложение:
go run cmd/main.go
-
Сборка бинарного файла:
# Windows
go build -o stego-tool.exe cmd/main.go
# Linux / macOS
go build -o stego-tool cmd/main.go
🛠 Техническое описание
Структура проекта
├── cmd/ # Точка входа в приложение
├── external/ui/ # Слой пользовательского интерфейса (GioUI)
├── internal/
│ ├── steganoanalisys/
│ │ ├── attack/ # Реализация алгоритмов атак (Strategy Pattern)
│ │ ├── dto/ # Объекты передачи данных
│ │ └── map_drawer/# Логика отрисовки тепловых карт
│ └── utils/ # Работа с файловой системой и изображениями
Алгоритмы
Атака Хи-Квадрат (Chi-Square)
Разбивает изображение на блоки (например, 32x32 px) и проверяет распределение пар значений (PoVs). Если в блоке скрыта информация, распределение частот четных и нечетных значений выравнивается, и Хи-квадрат статистика стремится к нулю (вероятность embedding -> 1.0).
Пространственная Энтропия
Вычисляет энтропию Шеннона для пар младших битов (LSB) в окрестности пикселя. Зашифрованные данные выглядят как белый шум с максимальной энтропией, что позволяет выделить их на фоне обычного фотошума.
🤝 Вклад в проект (Contributing)
Мы приветствуем Pull Requests! Если вы хотите добавить новый алгоритм атаки:
- Создайте структуру, реализующую интерфейс
attack.Attack.
- Добавьте параметры в метод
GetParameters().
- Зарегистрируйте атаку в
DetectTabController.
📄 Лицензия
Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.