15 ms·
Hide a photo inside another photo
- 1970-01-01 4y agoCheck out https://en.m.wikipedia.org/wiki/Steganography https://en.m.wikipedia.org/wiki/Steganography if this is your thing
- noasaservice 4y agoHmm. So combined with Apple's CSAM scanner, you can put CSAM inside a cat photo... And then anonymously leak the cat photo and tool to show it's CSAM. And then the CSAM scanner will flag the hash and alert the police of the user. And the target victim would never know.
- woodruffw 4y agoThis is substantially more complicated than finding a collision against the perceptual/“content aware” hash that Apple was planning on using.
- japhib 4y agoThis is how PICO-8 game cartridges are contained in a small PNG of the game itself! https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php https://robertovaccari.com/blog/2021_01_03_stegano_pico8/ https://robertovaccari.com/blog/2021_01_03_stegano_pico8/
- gregorymichael 4y ago“A picture of you, holding a picture of me, in the pocket of my blue jeans.”
- jstanley 4y agoAges ago I made a tool that does a similar method (rewrite the least-significant N bits of a pixel in the cover image with the most-significant N bits of the corresponding pixel of the hidden image). In my tool N is configurable. The main pitfall is that it doesn't work very well if the output is saved as a JPEG because of the compression. I think OP's idea of encoding all of the bits of the hidden image, by using a cover image with more pixels, is a good improvement: you get no loss of quality in the hidden image, and you vastly reduce the loss of quality in the cover image. https://incoherency.co.uk/image-steganography/ https://incoherency.co.uk/image-steganography/
- dennis-tra 4y agoSteganography is a very exciting topic and is not limited to image data but can also be applied to, e.g., audio data. I’ve done something similar in the past and embedded Merkle tree nodes in an image to allow partial integrity validation. It was a fun little project: https://github.com/dennis-tra/image-stego https://github.com/dennis-tra/image-stego
- rmatt2000 4y agoIn the original MIPS-32 instruction set, some fields in the instruction are unused in certain instructions. (The shift field in R-format instructions is an example.) I had a student who did a project to take real MIPS machine language programs and store textual data in them by repurposing these unused fields.
- pmoriarty 4y agoVideos provide much more space to hide data in than your typical images do. I've always wondered if there was some way that hidden information inside videos could be designed to survive the re-encoding that youtube does when you upload a video. Has anyone investigated this?
- unnouinceput 4y agoDid you read the story of 2011's storming of Bin Laden compound? And that they found heaps of porn videos? And that's how he exchanged messages with his network by using different open porn sites where they uploaded porn? I recommend reading it, it's quite interesting. Where is the link? Well, I don't give 100%, I like to only point people in the right direction, rest is left as an exercise for the reader.
- vore 4y agoHere is the link for less obtuse people: https://www.nbcnews.com/id/wbna47254281 https://www.nbcnews.com/id/wbna47254281
- charcircuit 4y agoYes, the keyword you are looking for is "watermark"
- alister 4y agoAn expedient way to hide another photo (or any data) in another photo is to simply append it to the original photo. It's certainly not as secure as OP's method, but it has the advantage of not requiring any third party app, just standard command line tools. Example: you have duck.jpg (21500 bytes) and you want to hide flower.jpg (37733 bytes). Do this to create a larger file (59233 bytes): cat duck.jpeg flower.jpeg > bigger-duck-file.jpg Anyone looking at bigger-duck-file.jpg will see the duck. Every image viewing program I tried displays the duck and none of them complain about the extra bytes (the hidden image) at the end of the file. The recipient can extract the hidden file as follows: tail -c 37733 bigger-duck-file.jpg > flower.jpg You would have to tell the recipient the size of the hidden file by some other means. But there might be a simple command-line way to determine where the image data for duck.jpg really ends in the bigger file, so maybe you wouldn't need that step.
- quasarj 4y agoAnd as someone else has probably said, if the second file is a zip file.. the file will open successfully in most zip programs without any modification.
- 13of40 4y agoThat doesn't make sense to me. Zip was designed so it could be written to a non-seekable stream, meaning the Central Directory structure that points to all of the file records is at the end of the archive. Its location is found at the very end of the archive in the End Of Central Directory record. Problem is that it's a pointer to the offset of the Central Directory relative to the beginning of the archive, and so are the pointers to the file records in the directory. So, if you just append a ZIP file to another file, it will screw up all the internal pointers in the ZIP file. If you overlay a file on the beginning of the ZIP, most of it should be recoverable, though. Another clever hack is that you can put a batch file in the beginning of the ZIP with the compression level set to "none", rename it to .CMD or .BAT, and run it like a batch file. If said batch file locates and unzips itself, you've got a self-extracting archive.
- 4y ago
- daenz 4y ago>Have you ever thought of hiding a photo inside another photo? No? Is there any use for this besides people sharing Child Sexual Abuse imagery without being detected?
- wildzzz 4y agoAl Qaeda was hiding documents inside porn videos they were passing around. I'm guessing if you can find a video host that doesn't transcode the original file, you could publicly post these videos with special keywords for your comrades to discover.
- shakna 4y agoIt's a common format for savedata in the indie game scene. You place the game data within a screenshot of the game. It can make it easier to share state, and be more easily human-identified among other saves. Hiding one thing inside another doesn't necessarily require secrecy as part of the intent.
- daenz 4y agoI see your point, but that's not really a photo inside of another photo. What kind of secret photos do people need to be hiding inside of other photos?
- CogitoCogito 4y agoMaybe people just want to have some fun? Send a secret picture only to their friends? Or maybe they want to send an image while hiding it from a government censor? I'm sure you can come up with more examples if you use your imagination. Besides complaining about the potential use for child pornography is bizarre. If someone wanted to secretly send child porn to someone else, they could just encrypt it. It would be far more effective than this image packing method.
- daenz 4y ago>If someone wanted to secretly send X to someone else, they could just encrypt it. It would be far more effective than this image packing method. You're making a case against steganography?
- deleted 4y ago[deleted]
- wayeq 4y agoi assume you could do this with a one time pad to transform the image to the new image
- swimfar 4y agoI remember seeing an image a long time ago that revealed a different image when you highlighted it. But I could never find any references to the technique since then. Does anyone else remember something like this?
- brian-armstrong 4y agoI had another idea for steganography in Jpegs specifically. So in Jpeg there is something called the Quantization Table that's responsible for weighting all the AC values in each 8x8 block. When you encode, you divide the DCT values by the corresponding DQT value so a large quantization value has a greater chance of reducing the DCT to 0, allowing us to truncate the high frequencies (we want this). To decode we just multiply by the corresponding quantization value and run the inverse DCT. But nothing prevents us from putting 0s in the Quantization table. And any pixel put in those values wouldn't contributed to the rasterized image. So we can cut off some of the high frequency bins entirely and then store whatever in them.
- rootsudo 4y agoSteganography is so exciting, my first exposure was on 4chan back in 2006, you could use image hosting sites to hide and secretly host tons of things. SOF/EOF and such to look for that and more... :)
- AlexanderTheGr8 4y agoIf you run image recognition algorithms on this, will they recognize the outer image or the inner image or both or none? Btw this is fascinating!
- chicob 4y agoThe next step would be to hide an animation within another, in the APNG format. But I ignore if there is any compression that would make this impossible.
- mathewsanders 4y agoWould it be feasible to have a machine readable image like a QR code as the obscured image, so if people took a photo of a poster some metadata about the poster could be exposed to the camera app to then be passed onto the user? Or does this technique rely on having access to the original digital image, and too much information is lost over the analog gap?
- peddling-brink 4y agoMaybe? Sounds like an interesting research project. This is mildly related: [PDF] Surmounting the Effects of Lossy Compression on Steganography https://csrc.nist.gov/csrc/media/publications/conference-paper/1996/10/22/proceedings-of-the-19th-nissc-1996/documents/paper014/stegox.pdf https://csrc.nist.gov/csrc/media/publications/conference-pap...
- teeray 4y agoYou would need camera sensors that are sensitive to the minute changes in color this technique causes. Digital cameras use color filters [1] to capture that information, and these are more aligned with how the eye sees color. I’d imagine that would introduce the opportunity for losing what little information there is. [1] https://en.wikipedia.org/wiki/Bayer_filter https://en.wikipedia.org/wiki/Bayer_filter
- robotguy 4y agoNot specifically related, but something that provides about the same functionality and HN users might find interesting: Bokode: Imperceptible Visual Tags for Camera Based Interaction from a Distance https://www.researchgate.net/publication/215457339_Bokode_Imperceptible_Visual_Tags_for_Camera_Based_Interaction_from_a_Distance https://www.researchgate.net/publication/215457339_Bokode_Im... http://cameraculture.media.mit.edu/cubeportfolio/bokode/ http://cameraculture.media.mit.edu/cubeportfolio/bokode/