Комбайн для стеганографии
Find a file
2026-09-14 11:00:27 +03:00
cmd/stegterm Beta 2026-09-14 11:00:27 +03:00
internal Beta 2026-09-14 11:00:27 +03:00
go.mod Beta 2026-09-14 11:00:27 +03:00
LICENSE Initial commit 2026-09-14 07:59:06 +00:00
NOTES.md Beta 2026-09-14 11:00:27 +03:00
README.md Beta 2026-09-14 11:00:27 +03:00
README.ru.md Beta 2026-09-14 11:00:27 +03:00

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+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

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)