# stegterm Терминальный инструмент для CTF-стеганографии и аудио-форензики: анализ изображений (битовые плоскости, каналы, XOR, LSB-извлечение), спектрограмма и декодирование SSTV Robot36 для аудио — с превью через Kitty graphics protocol. English version: [README.md](README.md). Заметки по разработке, честные оговорки о рисках: [NOTES.md](NOTES.md). ## История Изначально было частью [burterm](https://github.com/r3g1tpr0cs/burterm) — терминального инструмента для веб-пентеста, — выделено в отдельный проект: стеганография и SSTV не имеют отношения к веб-пентесту, это была функциональность, постепенно прицепившаяся не к тому инструменту. ## Возможности - **Изображения** — изоляция битовой плоскости (классический первый шаг разбора LSB-стеганографии), изоляция одного канала, градации серого, инверсия, XOR двух изображений одинакового размера, линейное LSB-извлечение в сырые байты (показывается и как текст, и как hex) - **Аудио (только WAV)** — спектрограмма через собственную реализацию БПФ (без внешних DSP-зависимостей), декодирование SSTV Robot36 через FM-демодуляцию на основе преобразования Гильберта - Всё рендерится через Kitty graphics protocol; `ctrl+v` передаёт последнюю картинку заново, если перерисовка TUI её перекрыла WAV-only — осознанный выбор, не недоделка: сжатие с потерями (MP3 и т.п.) убивает мелкую структуру спектра, в которую в CTF прячут сообщения — такие задачи почти всегда именно в несжатом PCM WAV. ## Сборка ```sh go mod tidy go build -o stegterm ./cmd/stegterm ``` Требуется Go 1.23+. Сборка без cgo, без внешних DSP/image-библиотек — всё (БПФ, преобразование Гильберта, декодирование SSTV) написано с нуля на стандартной библиотеке. **Код ни разу не проходил через компилятор** — та же оговорка, что и у родительского проекта burterm; что вероятнее всего потребует правки при первой сборке — в [NOTES.md](NOTES.md). ## Запуск ```sh ./stegterm ``` Один экран. `ctrl+o` загружает файл (путь вводится в поле) — `.wav` считается аудио, всё остальное изображением. `ctrl+g` переключает операцию (режим преобразования картинки, либо спектрограмма/SSTV для аудио), `ctrl+r` применяет, `ctrl+v` повторно показывает последний результат, `ctrl+s` экспортирует текущий результат в `~/.stegterm/stego-exports/`. ## Структура репозитория ``` cmd/stegterm/ точка входа internal/ stego/ преобразования изображений, Kitty-протокол audio/ разбор WAV, БПФ, спектрограмма, декодирование SSTV tui/ единственный экран интерфейса (bubbletea) ```