LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

ff-16-tui

Interactive TUI that finds frequent 16-bit patterns in a file

TLDR

Scan a file (uses `dict.csv` in the current directory if present)
$ ff-16-tui [file.bin]
copy
Use a custom dictionary of known byte patterns
$ ff-16-tui [file.bin] -d [patterns.csv]
copy
Print usage (no file argument)
$ ff-16-tui
copy

SYNOPSIS

ff-16-tui file [-d dictionary]

DESCRIPTION

ff-16-tui (Find Frequent 16-bit Text User Interface) is an interactive static-analysis viewer. For the current 256-byte window it counts two-byte patterns, including pairs separated by a configurable gap, and lists the ten most frequent matches that meet the threshold.Each listed pattern shows hex (adjacent bytes, or `AA +(N) BB` when a gap is used), a printable ASCII pair, Ones (popcount of both bytes), Freq (hits in the window), and Dict (a label from the dictionary when the hex form matches). Selecting 0–9 highlights those occurrences in the hexdump.The optional dictionary is a semicolon-separated CSV (`pattern; label`) with `#` comments. The upstream `dict.csv` tags common text bigrams, alignment padding, x86 opcodes, MSIL opcodes, and similar signatures. Dictionary lookup is case-insensitive on the hex field.

PARAMETERS

file

Binary or other file to inspect. Size must be between 256 bytes and 16 MiB
-d dictionary
CSV dictionary of known patterns (default: dict.csv in the working directory). Missing file prints a warning and continues without labels

KEYBOARD SHORTCUTS

/

Move the 256-byte view one byte left or right
/
Move the view one 16-byte line
PgUp / PgDn
Move the view one 256-byte page
Home / End
Jump to the start or end of the file
09
Highlight the ranked pattern with that index (0 is most frequent among those above the threshold)
q / a
Raise or lower the minimum gap between the two pattern bytes (0–127)
w / s
Raise or lower the maximum gap (0–127; default range is 0–31)
e / d
Raise or lower the minimum number of set bits across both bytes (0–16)
r / f
Raise or lower the maximum number of set bits
t / g
Raise or lower the frequency threshold (1–255; default 5). Patterns below it are hidden
x
Exit and restore the terminal

CAVEATS

Requires a terminal that supports ANSI colors and raw keyboard input (`golang.org/x/term`). Files smaller than 256 bytes or larger than 16 MiB are rejected. Pattern search is per 256-byte block, not the whole file at once, so frequencies are local to the current view. Default dictionary path is relative to the working directory, not the binary. There is no mouse support; x is the only documented way to quit.

HISTORY

Written in Go by HexLasso. The public repository and sample dictionary were published in 2026.

SEE ALSO

hexdump(1), xxd(1), hexyl(1), strings(1), binwalk(1), radare2(1), file(1)

RESOURCES

Braincup
Open source brain training for math, memory and focus
Braincup mini-games
41 mini-games · Apache-2.0
No ads · No tracking
Play in browser
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid
276 stars
From the maker of Linux Command Library
Copied to clipboard
Braincup
Open source brain training for math, memory and focus. 41 mini-games, from mental arithmetic to Sudoku, N-Back and Solo Chess.
Apache-2.0 licensed · No ads · No tracking · No account
From the maker of Linux Command Library
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid