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.

Mornary encoding and decoding pipeline
Fig.1 - A Mornary transmission can be interpreted in two ways: a standard Morse decoder produces English text, while a Mornary decoder reconstructs the hidden binary payload.

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