_____ _ _ ____
/ ____(_) | | |___ \
| | _ ___ __ _ __| | __ _ __) |
| | | |/ __/ _` |/ _` |/ _` ||__ <
| |____| | (_| (_| | (_| | (_| |___) |
\_____|_|\___\__,_|\__,_|\__,_|___ a ripOff by kush-- Encode a secret message into an image
- Decode the hidden message from an image
- Supports all the img formats for easy manipulation
Before using the tool, ensure you have the following installed:
- G++ Compiler (or any other) (for compiling the C++ code)
- ImageMagick (for converting images to PPM format)
Download and install ImageMagick from the official site:
After installation as per your OS, verify it with:
magick --versionClone the repository and compile the C++ files:
git clone https://github.com/kush1jpeg/Steganography-x-CPP.git
cd Steganography-x-CPPfor gcc-
g++ file.cpp bin.cpp working.cpp msg.cpp decrypt.cpp xor.cpp -o output.exe//for windows output.exe file will be formed and on linux simply output file will be formed
Run the output file:
./output.exe-
The message is converted into a binary sequence.
-
My approach is a variation of LSB steganography :
-Find the smallest value among R, G, and B in a pixel.
-Extract its "ones place" digit (e.g., if Red = 23, you take 3).
-Replace this ones place digit with a binary from your hidden message.
-
During decoding, the ones place of the smallest value among rgb of a pixel is extracted to reconstruct the message.
Feel free to contribute by submitting issues or pull requests or some improvements
I’m thinking of first encrypting the message using an algorithm. What I have in mind is generating a passkey by hashing some of the metadata from the image, then encrypting the message and storing it inside the image as binary data. This way, it would be almost unbreakable (well, not literally, but very secure 😎). I’m definitely going to do this since I've already used the Caesar Cipher algorithm in my File Encryptor and Decryptor project, so it should be easy for me. Ahh, I’ve yapped too much 😅.
Also, I still need to figure out how to work with pipes in C++, because I honestly know jack-shit about them and had to remove the whole function that used pipes and rewrite it by uk creating files like a p$y🐱.
Edit: I’ve done some basic encryption on the message being inputted before converting it into binary using XOR. Now, I really want to implement SHA-256. However, making it from scratch would complicate the project unnecessarily, and I don’t want to use any fucking crappy library just to get the job done;