4 KiB
stegterm
Терминальный инструмент для CTF-стеганографии и аудио-форензики: анализ изображений (битовые плоскости, каналы, XOR, LSB-извлечение), спектрограмма и декодирование SSTV Robot36 для аудио — с превью через Kitty graphics protocol.
English version: README.md. Заметки по разработке, честные оговорки о рисках: NOTES.md.
История
Изначально было частью burterm — терминального инструмента для веб-пентеста, — выделено в отдельный проект: стеганография и SSTV не имеют отношения к веб-пентесту, это была функциональность, постепенно прицепившаяся не к тому инструменту.
Возможности
- Изображения — изоляция битовой плоскости (классический первый шаг разбора LSB-стеганографии), изоляция одного канала, градации серого, инверсия, XOR двух изображений одинакового размера, линейное LSB-извлечение в сырые байты (показывается и как текст, и как hex)
- Аудио (только WAV) — спектрограмма через собственную реализацию БПФ (без внешних DSP-зависимостей), декодирование SSTV Robot36 через FM-демодуляцию на основе преобразования Гильберта
- Всё рендерится через Kitty graphics protocol;
ctrl+vпередаёт последнюю картинку заново, если перерисовка TUI её перекрыла
WAV-only — осознанный выбор, не недоделка: сжатие с потерями (MP3 и т.п.) убивает мелкую структуру спектра, в которую в CTF прячут сообщения — такие задачи почти всегда именно в несжатом PCM WAV.
Сборка
go mod tidy
go build -o stegterm ./cmd/stegterm
Требуется Go 1.23+. Сборка без cgo, без внешних DSP/image-библиотек — всё (БПФ, преобразование Гильберта, декодирование SSTV) написано с нуля на стандартной библиотеке.
Код ни разу не проходил через компилятор — та же оговорка, что и у родительского проекта burterm; что вероятнее всего потребует правки при первой сборке — в NOTES.md.
Запуск
./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)