audio - Steganography in image -
so far, have opened image in hex editor , looked @ bytes. however, life of me cannot identify sound. have spent days on this. tried opening file (as 'raw data') in audacity , playing it. nothing 'noise'. tried create histogram/frequency analysis nothing.
any appreciated.
steganography works hiding second image or data in lower bits of image. these values becomes insignificant over-all , have little impact on visual of image.
to reveal second data, mask off top bits, scale remaining values.
however, need know in advance:
- how many of lower bits used (two common secondary images)
- how remaining data organized (if not image):
- is (bit) scaled, how much
- what order (scan-lines horizontally, vertically...).
- are color components in use? 1 , how data split on components...
- is audio file or audio data
- is resulting data compressed, encrypted, ...
- audio requires signed values, values signed in data, shifted... (this steals 1 bit means bytes must packed produce audible)
etc.
without information pretty useless (you can try guesses guesses, , can long time).
in case, provided basis below showing process, remains, , if extracted correctly, virtually "impossible" determine without knowing how original data organized:
here result of process using image known in advance hide image (the cat) in lower 2 bits:
var img = new image; img.onload = unstegano; img.crossorigin = ""; img.src = "//i.imgur.com/dkczmjn.png"; // contains hidden image document.body.appendchild(img); function unstegano() { var canvas = document.createelement("canvas"), ctx = canvas.getcontext("2d"); canvas.width = this.naturalwidth; canvas.height = this.naturalheight; ctx.drawimage(this, 0, 0); // pixels var idata = ctx.getimagedata(0, 0, canvas.width, canvas.height), data = idata.data, = 0, len = data.length; while(i < len) { data[i] = (data[i++] & 3)<<6; // masks 2 first bits, shifts scale data[i] = (data[i++] & 3)<<6; data[i] = (data[i++] & 3)<<6; i++ } ctx.putimagedata(idata, 0 ,0); document.body.appendchild(canvas); }
with supplied image looks noise, doesn't matter audio data produce noise image in case - challenge make out of noise (or "noise"):
var img = new image; img.onload = unstegano; img.crossorigin = ""; img.src = "//i.imgur.com/ipadzb4.png"; document.body.appendchild(img); function unstegano() { var canvas = document.createelement("canvas"), ctx = canvas.getcontext("2d"); canvas.width = this.naturalwidth; canvas.height = this.naturalheight; ctx.drawimage(this, 0, 0); // pixels var idata = ctx.getimagedata(0, 0, canvas.width, canvas.height), data = idata.data, = 0, len = data.length; while(i < len) { data[i] = (data[i++] & 1)<<7; // masks first bit, shifts scale data[i] = (data[i++] & 1)<<7; data[i] = (data[i++] & 1)<<7; i++ } ctx.putimagedata(idata, 0 ,0); document.body.appendchild(canvas); }
Comments
Post a Comment