Jump to content

[Version 1] Duck Cans


Recommended Posts

Duck Cans!

No, not that sorts of cans, these ones:


Photo of my proof of concept code running:


The more observant will notice that there's a 3.5mm audio cable coming out of the headphone socket on my Milestone (aka Droid) and have probably deduced that the ducky is 'listening'. The Android app uses FSK to encode data within an audio tone which is then read by the ducky. The interesting thing is that the tone for a specific set of commands can be pre-generated and played back on any audio device.

I'll be releasing the code and circuit details soon, I have a few things to fix up and some specifications to finalize.

Link to comment
Share on other sites

This sort of stuff sounds a lot like covert channels, like how firmware hackers program a bootloader that blinks the power LED to obtain the original firmwares from devices.

Some interesting reading: http://www.flakelabs.com/index.php/blog/

They're using an Android device to connect to a computer via audio, they use a circuit which is relatively complicated compared to mine. My implementation uses a few resistors and a capacitor then uses the hardware built into the AVR to do the rest of the work.

Other hardware related methods include:

- adding a microphone on the Teensy to read audio played by the computer's speakers (unreliable, complicated circuit)

- adding a LDR (light dependent resistor) on the Teensy and sticking it on the monitor or an LED on the computer (simple circuit but slow transfer speed and fiddly)

- adding a bluetooth module to the Teensy (expensive, requires host computer to have bluetooth)

- adding a WiFi/Ethernet module to the Teensy (expensive, plus many other complications)

I'd say direct connection to audio out is the best because it's readily available and the circuit to interface to the Teensy is very simple (the way I'm doing it). So to actually answer the question, yes it is possible to use audio to transmit from the computer to the Teensy, as I said in my original post the device can be any that can play or generate audio.

Anyway, rambling...

I've been meaning to do more work on this project but I've been busy with uni assignments, I have a little bit of spare time this weekend so hopefully I can at least release something for public use before things get busy again.

Link to comment
Share on other sites

I would take more of a RTTY approach.

RTTY is radio teletype common used on ham radio. In case you didn't know, tty is use to send text over serial, which would be an easy way to tell the ducky commands.

What I have done so far is strip an old headset wire, then solder on leads and plug them into the breadboard with my teensy.


Both mic and audio ground to ground. The mic lead then goes to TX aka transmitting. And both audio leads (L&R) into the RX aka receiving.

Then compile the teensy with teensyduino as a usb serial device (not keyboard/mouse).

AFAIK this should work. I am still trying to work it out myself.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...