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

68 lines
2.4 KiB
Markdown

# 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](README.ru.md).
Design notes, known risks, honest caveats: [NOTES.md](NOTES.md) (Russian only).
## History
Originally part of [burterm](https://github.com/r3g1tpr0cs/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+v`
re-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
```sh
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](NOTES.md) for what's most
likely to need fixing on the first build.
## Running
```sh
./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)
```