Mornary is an opensource command-line application that encodes arbitrary binary data as Morse code that decodes into plausible English words. A standard Morse decoder sees ordinary text, while a Mornary decoder reconstructs the hidden binary payload.
The result is a generative steganographic system where the carrier itself is a Morse signal rather than a modified file.
Demo
Input: Hello World!
Generated Morse: .-. . -.. . . -- . .-. / - . -- .--. . .- -. / --. .. --. --- - / . .-.. . ...- . -. / - -- . -- .- / --- .-- -. . -.. / -- .- -.. .-- . . -.. / .. -. ... -
Standard Morse Decode: REDEEMER TEMPEAN GIGOT ELEVEN TMEMA OWNED MADWEED INST
Mornary Decode: Hello World!
Key Properties
See Analysis for a detailed explanation.
- Carrier independence – works with text, sound, light, or radio
- Human relay capable – messages can survive manual transcription
- Higher density than most text-based steganography systems
CLI Usage
Commands
The following is copy of mornary --help:
Usage: mornary [-hV] [-O=] [-t=] (-e= | -E= | -d= | -D=)
Generative steganography using morse code.
-h, --help Show this help message and exit.
-V, --version Print version information and exit.
-e, --encode= Encodes the supplied text.
-E, --Encode= Encodes the supplied file.
-d, --decode= Decodes the supplied Mornary-encoded text.
-D, --Decode= Decodes the Mornary-encoded contents of the supplied file.
-O, --Output= Writes the output to the supplied file. If omitted, output will be printed to the console.
-t, --threads= Sets the thread pool size. Only used when encoding files. Defaults to 10.
Examples
// Encoding text
mornary -e "Hello World!"
// Encoding a file
mornary -E input.txt -O output.txt
// Decoding text
mornary -d ".- .. .-. -.-- / --.. / . / .-- . ... - / .-- .- -. - / .-- / -.. . .. - -.-- / ...- / -.. / -.-"
// Decoding a text file
mornary -D input.txt -O output.txt
// View help
mornary -h