stegterm/README.ru.md
2026-09-14 11:00:27 +03:00

70 lines
4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)
```