| cmd/stegterm | ||
| internal | ||
| go.mod | ||
| LICENSE | ||
| NOTES.md | ||
| README.md | ||
| README.ru.md | ||
stegterm
A terminal tool for CTF steganography and audio forensics: image bit-plane/channel analysis, XOR, LSB extraction, spectrogram rendering, and Robot36 SSTV decoding — with preview via the Kitty graphics protocol.
Русская версия: README.ru.md. Design notes, known risks, honest caveats: NOTES.md (Russian only).
History
Originally part of burterm, a terminal web-pentest tool — split out into its own project because steganography/SSTV have nothing to do with web pentesting; it was functionality that accreted onto the wrong tool one feature at a time.
Features
- Images — bit-plane isolation (classic first step for spotting LSB-hidden text/patterns), single-channel isolation, grayscale, invert, XOR between two same-size images, linear LSB extraction to raw bytes (shown as both text and hex)
- Audio (WAV only) — spectrogram via a hand-written FFT (no external DSP dependency), Robot36 SSTV decoding via Hilbert-transform-based FM demodulation
- Everything renders through the Kitty graphics protocol;
ctrl+vre-sends the last rendered image if a TUI redraw clobbers it
WAV-only is deliberate, not a shortcut: lossy compression (MP3/etc.) destroys the fine spectral structure CTF challenges hide messages in — those tasks are almost always plain PCM WAV.
Building
go mod tidy
go build -o stegterm ./cmd/stegterm
Requires Go 1.23+. Builds without cgo, no external DSP/image libraries — everything (FFT, Hilbert transform, SSTV decoding) is a from-scratch implementation on the standard library.
The code has never gone through a compiler — same caveat as its parent project burterm; see NOTES.md for what's most likely to need fixing on the first build.
Running
./stegterm
One screen. Load a file with ctrl+o (path typed into the input field);
.wav is treated as audio, anything else as an image. ctrl+g cycles
the operation (image transform mode, or spectrogram/SSTV for audio),
ctrl+r applies it, ctrl+v re-shows the last result, ctrl+s exports
the current result to ~/.stegterm/stego-exports/.
Repository layout
cmd/stegterm/ entry point
internal/
stego/ image transforms, Kitty protocol encoding
audio/ WAV parsing, FFT, spectrogram, SSTV decoding
tui/ the single-screen interface (bubbletea)