A tool that embeds arbitrary files into a PNG image with optional password protection, preserves the image as a valid PNG, supports full reversible extraction, and can safely transport the result through text-only channels via Base64 encoding.
- Debian/Ubuntu:
apt install libssl-dev
- Fedora/RHEL/CentOS:
dnf install openssl-devel
- Arch/Manjaro:
pacman -S openssl
- Slackware:
The King already has it in the installation, but just in case: slackpkg install openssl
- openSUSE:
zypper install libopenssl-devel
- Alpine:
apk add openssl-dev
- Gentoo:
emerge dev-libs/openssl
- Void:
xbps-install openssl-devel
gcc -O2 -s -o Shh shh.c -lssl -lcrypto
Example to hide the secret.html file in the sbodog.png file:
./Shh hide sbodog.png secret.html output
Create: output.png + (base64) output.txt
To revert back:
./Shh decode output.txt extracted.html
or
./Shh decode output.png extracted.html
Password is optional else just hit enter.
You can hide everything in your .png:
- ZIP/TAR
- MP3/MP4
- EXE
- Other PNG/JPG
- Python scripts
- bitcoin_wallet.dat
- etc...
But you can not upload the modified output.png on web-hosts that re-encoding images, because your hidden data will be lost.
You can upload the base64 output.txt in a pastebin or in file sever or send it via email etc...
