Well, I’m sure that you are definitely curious about how do you do this. Let me tell you this, it’s really simple.
Pre-requisites:
- Image File(any format will do or even any file will do)
- Linux(I’ve only tested it on this platform but I guess Mac would also do)
Let’s get started, shall we?
First create a standard loopback device.
dd if=/dev/zero of=hiddenimage bs=1M count=10
Let’s see what does this do:
It creates a file called “hiddenimage”, with it’s size as 10MB.
Then, create a filesystem on it.
mkfs.ext4 hiddenimage
mke2fs 1.41.8 (11-July-2009) hiddenimage is not a block special device. Proceed anyway? (y,n) y Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 2560 inodes, 10240 blocks 512 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=10485760 2 block groups 8192 blocks per group, 8192 fragments per group 1280 inodes per group Superblock backups stored on blocks: 8193 Writing inode tables: done Creating journal (1024 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 39 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Find out the size of your file by
du -b Wallpapers/Stones.jpg
Then, cat this image into your image file(or whatever file).
cat hiddenimage >> Stones.jpg
Then mount it by:
sudo mount -o loop,offset=FILESIZE Stones.jpg -t ext4 /media/testfs/
as in mycase it was:
sudo mount -o loop,offset=1294792 Stones.jpg -t ext4 /media/testfs/
We have now steganographed our own little filesystem image into a file. Ofcourse, anyone would be suspicious, so do ing this with a movie file would be a bit more appropriate. Now you can read/write to this image.
Comment me if you have any problems.