All Projects → priyansh-anand → Steganographer

priyansh-anand / Steganographer

Licence: mit
Steganograpy in Python | Hide files or data in Image Files

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Projects that are alternatives of or similar to Steganographer

W5
Security Orchestration, Automation and Response (SOAR) Platform. 安全编排与自动化响应平台,无需编写代码的安全自动化,使用 SOAR 可以让团队工作更加高效
Stars: ✭ 367 (+252.88%)
Mutual labels:  python-script, hacking
Stegcloak
Hide secrets with invisible characters in plain text securely using passwords 🧙🏻‍♂️⭐
Stars: ✭ 2,379 (+2187.5%)
Mutual labels:  hacking, steganography
Cloakify
CloakifyFactory - Data Exfiltration & Infiltration In Plain Sight; Convert any filetype into list of everyday strings, using Text-Based Steganography; Evade DLP/MLS Devices, Defeat Data Whitelisting Controls, Social Engineering of Analysts, Evade AV Detection
Stars: ✭ 1,136 (+992.31%)
Mutual labels:  hacking, steganography
Ctf Notes
Everything needed for doing CTFs
Stars: ✭ 304 (+192.31%)
Mutual labels:  python-script, hacking
Packetwhisper
PacketWhisper: Stealthily exfiltrate data and defeat attribution using DNS queries and text-based steganography. Avoid the problems associated with typical DNS exfiltration methods. Transfer data between systems without the communicating devices directly connecting to each other or to a common endpoint. No need to control a DNS Name Server.
Stars: ✭ 405 (+289.42%)
Mutual labels:  hacking, steganography
Hackingtool
ALL IN ONE Hacking Tool For Hackers
Stars: ✭ 7,521 (+7131.73%)
Mutual labels:  hacking, steganography
Pentesting toolkit
🏴‍☠️ Tools for pentesting, CTFs & wargames. 🏴‍☠️
Stars: ✭ 1,268 (+1119.23%)
Mutual labels:  hacking, steganography
Wifipassword Stealer
Get All Registered Wifi Passwords from Target Computer.
Stars: ✭ 97 (-6.73%)
Mutual labels:  hacking
Yalu Jailbreak Ios 10.2
My own fork of (Beta) Yalu Jailbreak for iOS 10.0 to 10.2 by @kpwn and @marcograss with custom UI and other features.
Stars: ✭ 99 (-4.81%)
Mutual labels:  hacking
Github Dorks
Find leaked secrets via github search
Stars: ✭ 1,332 (+1180.77%)
Mutual labels:  hacking
Spykeyboard
keylogger which sends us the data to our gmail.
Stars: ✭ 95 (-8.65%)
Mutual labels:  hacking
Web Brutator
Fast Modular Web Interfaces Bruteforcer
Stars: ✭ 97 (-6.73%)
Mutual labels:  hacking
Bettercap
The Swiss Army knife for 802.11, BLE, IPv4 and IPv6 networks reconnaissance and MITM attacks.
Stars: ✭ 10,735 (+10222.12%)
Mutual labels:  hacking
Python Ransomware
Python Ransomware Tutorial - YouTube tutorial explaining code + showcasing the ransomware with victim/target roles
Stars: ✭ 96 (-7.69%)
Mutual labels:  hacking
Timelapse
A time lapse app for Sony Alpha camera using the OpenMemories framework
Stars: ✭ 101 (-2.88%)
Mutual labels:  hacking
Tweetable Polyglot Png
Pack up to 3MB of data into a tweetable PNG polyglot file.
Stars: ✭ 299 (+187.5%)
Mutual labels:  steganography
Collection Document
Collection of quality safety articles. Awesome articles.
Stars: ✭ 1,387 (+1233.65%)
Mutual labels:  hacking
Hackerone Lessons
Transcribed video lessons of HackerOne to pdf's
Stars: ✭ 101 (-2.88%)
Mutual labels:  hacking
Ecommerce Website Security Checklist
List of considerations for commerce site auditing and security teams. This is summary of action points and areas that need to be built into the Techinical Specific Document, or will be checked in the Security testing phases.
Stars: ✭ 98 (-5.77%)
Mutual labels:  hacking
Dark Fb
Hack Facebook
Stars: ✭ 98 (-5.77%)
Mutual labels:  hacking

Steganography in Python

This script will hide files inside images and save the modified image to disk

The maximum size of file which can be hidden inside an image depends on the dimension of the image.

max_file_size = ( height_of_image * width_of_image * 6 / 8 ) bytes

'100k words.txt' is hidden in 'original_image.png' named as 'image_with_100k words.png'. Go and checkout if you can spot the difference between these two images. You can use this Module to extract '100k words.txt' from the 'image_with_100k words.png'

Example

Original Image Original Image

Modified Image Modified Image

This image has 100k words (a text file) hidden inside it!

How it works?

It is based on a simple principle that if we change the LSB ( Least Significant Bits ) of every Pixel, then the change will not be significant and will not be noticed by eyes.

So, this Module takes 2 bits of data from the file to be hidden and replaces the last 2 bits of one pixel with those 2 bits, and then move to next pixel. The maximum change in pixel can be 4 units, and the range of values in a PNG Image if (0,255), so this change will not be significant.

In a PNG Image, each pixel has 3 channels Red, Green and Blue. ( Some PNG Images have 1 or 4 channels, but this Program will convert them to 3 channels) A typical pixel in a PNG Image looks like :

a_pixel = (17,32,11)     # (RED, GREEN, BLUE)

So, we can save 3 times 2 bits in a Pixel, that means 6 bits per pixel. That leads us to the upper limit of the file size, that can be hidden in an image:

max_file_size = ( height_of_image * width_of_image * 6 / 8 ) bytes

Let's understand by taking an example. The data to be hidden is :

binary_data = 0b100111

Let's take the first two bits and replace them with the RED Channel of our 'a_pixel'.

a_pixel = (0b10001, 0b100000, 0b1011)   # binary representation of a_pixel values
# Let's change a_pixel's RED Channel
# 0b10001 -> 0b10010  ( First 2 bits are 10 )
a_pixel = (0b10010, 0b100000, 0b1011)  # modified pixel

Let's again take 2 bits from binary_data and replace the last 2 bits of GREEN Channel with them.

a_pixel = (0b10010, 0b100000, 0b1011)
# Let's change a_pixel's GREEN Channel
# 0b100000 -> 0b100001  ( The 2 bits are 01 )
a_pixel = (0b10010, 0b100001, 0b1011)  # modified pixel

Let's do this one more time with BLUE Channel and we will be done.

a_pixel = (0b10010, 0b100001, 0b1011)
# Let's change a_pixel's BLUE Channel
# 0b1011 -> 0b1011  ( The 2 bits are 11 ) ; Notice that the value wasn't changed this time
a_pixel = (0b10010, 0b100001, 0b1011)  # pixel wasn't modified this time

So, we have hidden our 6 bit message in a pixel, let's see the changes in the pixel

a_pixel             = (0b10001, 0b100000, 0b1011) = (17, 32, 11)
a_pixel_with_data   = (0b10010, 0b100001, 0b1011) = (18, 33, 11)

As we can see that the change is not even noticeable at the pixel level. The Module do this repeatedly until all our data is saved to the image.

Data hidden in Raw Image

NOTE : The noise in the photo is increased and if we use any photo editing software and compare it with the original image, then this image will have much more noise than the original image.

Solution for this problem : Never ever upload/share the original image to internet

Todos

  • Add support for JPEG Images
  • Add auto detection of the name of file to be extracted

License

MIT

Free Software, Hell Yeah!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].