• XDA Forums have been migrated to XenForo. To discuss, report bugs and other issues, use this thread.

[APP] StegDroid Alpha v 0.75

fredley

Retired Recognized Developer
Apr 20, 2009
48
5
0
Cambridge
www.tommedley.com
Hi guys/gals

I'm working on this app for my final year dissertation. It performs Echo Steganography on wave files. My app uses this to encode short text messages in an audio file, then share it. I've just got the Steg side of things working, so I wanted to get some early feedback on whether it works for other people (and if it's awfully slow - it uses a lot of Fourier Transforms etc...).

This is very early days, so the app isn't anything like ready for primetime yet, but the basics are in place. I'd really appreciate it if you could download it and:

* Have a go at embedding some text in a recording and seeing if it correctly extracts it again.
* Run the tests available in the menu
* Email me one of your recordings (tfmw2 [at] cam [dot] ac [dot] uk) to see if I can extract the data on my phone.
* Supports encryption with a shared key
* Transcodes audio files to ogg format for sharing

Updates (0.75)

* Added Multicasting of messages to contact groups

* Fixed bug with sharing files in paranoid mode
* Better memory management, should work more reliably with longer messages
* Reduced error rate (less garbled messages)
* Reduced file size by 33%
* Other bug fixes

Any problems let me know!



Cheers
 

Attachments

Last edited:

fredley

Retired Recognized Developer
Apr 20, 2009
48
5
0
Cambridge
www.tommedley.com
The app records a file from the microphone and embeds a secret message into it. You can send that file to someone, and if they've got the same app they can extract the secret message from the audio file. Anyone listening to the audio file wouldn't be able to tell that it's got a message hidden in it, as the difference is hard to distinguish with the human ear.
 
  • Like
Reactions: snowchrome

Meltus

New member
Jan 11, 2009
1,912
1,022
0
Manchester
www.androidaudiohacks.com
Works pretty well, cool idea too!
I was able to make it fail though by using a long jumble of letters (I screenshotted before and after to compare) but it still only got about 5 wrong (little diamond with a ? In the middle).
Nice work!

Sent from my Nexus One using XDA App
 
  • Like
Reactions: fredley

Meltus

New member
Jan 11, 2009
1,912
1,022
0
Manchester
www.androidaudiohacks.com
Thanks Meltus

Could you let me know the length of the string. Were the wrong characters at the end or distributed throughout? What kind of audio input were you testing with (voice message, background noise, music etc.)?
Length of the string was about 30 characters, the wrong characters were distributed and were just regular letters.
As for the audio it was just me tapping on the mic for about 20 secs.

I've been doing more tests too and it only seems to occur when you have a few repeating characters. I typed out the keyboard lines and it got it correct, until i started repeating every other character a few times, then it started to get a few wrong.
 

fredley

Retired Recognized Developer
Apr 20, 2009
48
5
0
Cambridge
www.tommedley.com
Length of the string was about 30 characters, the wrong characters were distributed and were just regular letters.
As for the audio it was just me tapping on the mic for about 20 secs.

I've been doing more tests too and it only seems to occur when you have a few repeating characters. I typed out the keyboard lines and it got it correct, until i started repeating every other character a few times, then it started to get a few wrong.
That's strange! The embedding works bit-by-bit, rather than byte-by-byte, so it's very strange that repeated chars should cause an issue. I'll look into it though. Did you try the same test with continuous sound, such as music? I'll see if I can replicate it here. What hardware/android version are you using?
 

kuelexx

New member
Oct 19, 2010
4
0
0
Are you using a set algorithm to code messages and decode them? Or does it shift from how long the coded message is to the non-coded message? This is an interesting app that could serve a lot of uses, excellent idea! Hopefully this is seen all the way through to "perfection", its a keeper.

I will be watching this blog closely and will test the app. Cant wait until its totally complete.



--CueSA
 

Meltus

New member
Jan 11, 2009
1,912
1,022
0
Manchester
www.androidaudiohacks.com
That's strange! The embedding works bit-by-bit, rather than byte-by-byte, so it's very strange that repeated chars should cause an issue. I'll look into it though. Did you try the same test with continuous sound, such as music? I'll see if I can replicate it here. What hardware/android version are you using?
I'm using a Nexus One with 2.3.
I didn't try it with other types of sound so it's not the most accurate of tests, but i'll have another go today.
 

fredley

Retired Recognized Developer
Apr 20, 2009
48
5
0
Cambridge
www.tommedley.com
I've had some issues with occasional chars being wrong, I may put in some kind of CRC, but I don't think it's that serious. It may have something to do with various microphones and their sensitivity.

In other news, now upgraded to version 0.4, which converts encoded files to ogg format, and can extract messages from ogg files too! (would be a bit silly if it didn't). Files are ~90% smaller as a result!
 

ledridge

New member
Dec 13, 2006
28
1
0
I could see an RDS type implementation or advertising uses that would let you encode whatever data you wanted in the audio if the mobile app did something like SoundHound where you could have it listen for the message. If you could create a background app that listened for any messages and alerted when heard, without totally draining the battery, I could see implementations with nielsen ratings showing accurately what you saw and when.
 

fredley

Retired Recognized Developer
Apr 20, 2009
48
5
0
Cambridge
www.tommedley.com
I could see an RDS type implementation or advertising uses that would let you encode whatever data you wanted in the audio if the mobile app did something like SoundHound where you could have it listen for the message. If you could create a background app that listened for any messages and alerted when heard, without totally draining the battery, I could see implementations with nielsen ratings showing accurately what you saw and when.
I believe this tech (or at least, steganography in general) is already used to watermark copyrighted material, in some cases uniquely. Authorities can then look at an illegally shared file and trace its origin or something like that. Certainly it's possible.
 
Our Apps
Get our official app! (coming soon)
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone