Show HN: Encrypt and hide files inside images
github.com
github.com
[0]https://nedbatchelder.com/blog/200806/spore_creature_creator...
It's a neat way of sharing save files!
https://www.lexaloffle.com/pico-8.php https://pico-8.fandom.com/wiki/P8PNGFileFormat
She decided against crossing the border with the music collection, and so it was never used. Still a fun steganography project.
Reference:https://www.google.com/amp/s/torrentfreak.com/new-zealand-3-...
Half of it fell over in court, but that came later but our government got to be be friends with the big guys.
I find it hard to believe NZ customs would be interested in music, pirated or not.
Try bring a bit of fruit or meat though, that gets them fired up.
I’m sure there are dozens of equivalent services now but the government doesn’t even bother keeping up. The market adapted in the form of streaming, subscriptions, and services.
I guess you can always mimic these things to some degree if you are determined enough though.
See https://web.archive.org/web/20120905034757/http://www.eece.m...
So if you randomly generated a stream of bits and put that in a photo, that would not be differentiable from an encrypted blob inside of a photo data structure.
That means the question is where do you hide a random string of 1's and 0's without it being obvious there is a string of 1's and 0's. The related question to a noisy photo is, is there structure to the noise? Random 1's and 0's is the opposite of structure. So trying to de-steganogra-fy a photo means looking for absence of structure.
This leads to the observation you are making, which is that the photo you choose has a great effect on the effectiveness of the stenography. If you photo-shopped together an image of a TV displaying static, you could put an encrypted blob in the static with all bits and have a cohesive photo. If you were to hide a payload in a completely black (#000000) picture, any strategy used would likely be obvious.
Stenography is very much "security through obscurity" compared to encryption which is security. The nature of encryption means that stenography is primarily about plausible deniability rather than being technically effective.
Where can I find games like that?
As semi-related trivia, Pico-8 stores its "cartridges" using this technique so the carts are .PNG files.
Re-sizing would trash the payload, but any type of conversion that losslessly preservers the raster (the matrix of pixels) would likely still be recoverable.
Example video 13.2MB => 7.2MB
They could still compress images on the client side before sending the message. Dunno if they do or not, didn’t check. Just saying that E2EE does not prevent them from doing so.
The "Dangerous Kitten" pack of hacking tools was famously shared this way on early image boards: https://web.archive.org/web/20110902044711/http://partyvan.i...
Nowadays must image parsing is done via libraries that will strip out extraneous info to prevent this, but back in the day when most people would roll their own code for this (or copy paste poorly thought out implementations) this was commonly, if unintentionally, supported.
I can also confirm that Facebook strips everything out of images, rendering them useless for this purpose. Instagram does the same (not surprisingly).
However, LSB is the most famous method of doing steno, so if you actually have something to hide this is probably not a good method, as everyone knows about this method.
I didn't check the code corresponding to the submitted article, but I'd guess it would be infeasible even for an advanced or even state adversarial actor to automatically check lots and lots of images (unless there is some kind of "signature" that can be detected) just in case there might be some LSB-based steganographically hidden secret inside.
If the adversary is doing a targeted attack against an individual/group of individuals, it might be more feasible, but then I'd wonder if other means of attack, including the good old monkey-wrench-to-the-knee aren't still more efficient.
There is.
You're right that the encryption probably can't be overcome. The risk is more that it is detected and then the adversary beats you up until you hand over the password.
Needless to say that too has already been done many times in the last 20 year.
The ZIP thing is a nice trick, but by now is being checked for regularly when computer forensics come into play. Also, I would argue that it is not actually steganography, for it does not hide itself.
Yes, both is easily detected anyway, hence I said "ditching" it would allow to make it a zip file.
Generally though, even if you make an executable JPEG, the thing stopping this is that normally you look at the extension to decide how to interpret a file, so when you see a .jpg ending, you don't try and execute.
TVoKSGVsbG8gdGhlcmUuClRoYW5rIHlvdSBmb3IgcmVhZGluZyBteSBlbmNvZGVkIG1lc3NhZ2Uu ClRoZSBiZXN0IHdvcmQgaW4gdGhlIEVuZ2xpc2ggbGFuZ2FnZSBpcyBSdXRhYmFnYS4KQ2hhbmdl IG15IG1pbmQ=
If they are uniformly random, then you know something is up.
The faint outlines of objects you can see, the varying textures, and the areas of clipping (where the source-brightness was either above 255 or below 0).
There are other statistical correlations not visible in that image - correlations between the different channels, and between the different bits within a channel.
If I showed you the most significant bit of some non-JPEG'd image, you could obviously see that it's non-random (since it'd essentially be a threshold function). If I showed you the second-most significant bit, it would again be non-random, but perhaps less obviously so. As you go through the bits, it starts looking more and more random, but there are still going to be statistical tests you can do to distinguish from true uniform random bits.
In contrast steghide[1] encodes the data by swapping pixels within the image. This leaves the distribution of pixel values the same, avoiding this channel of detection.