Amazon Dash Button Hack

148,668

249

106

Introduction: Amazon Dash Button Hack

On March 31st, 2015, Amazon launched the Amazon Dash button in an attempt to change the paradigm by which we regularly purchase consumables.

August 10th, Ted Benson publishes details for a fairly involved Amazon button hack on medium.com

August 26th , A coworker brings one in to work, throws it on my desk, and I explode in excitement. Unaware of what it was, and the work done by Ted, I set foot on writing my own exploit.

September 1st, With a successful working exploit in my toolbox, I finished writing a pairing procedure for the button and host computer as well as implemented a rudimentary ability to handle multiple buttons with ease.

tldr;

Wanna use your Amazon Dash Button for things other than buying stuff? Check out this program that will change your world!

Update 7/16/2016
Daemon Version 4.0 is now up and running! As per the old update, this ible will not be updated to reflect the new features. Visit the GitHub for instructions on how to use the latest features!
Also, Windows Defender flags my program for some reason. False positive obviously. A report has already been submitted to Microsoft for review. If you don't trust the EXE, review and run directly from the source;) that's the beauty of open source software!

Update 7/3/2016:
GitHub files have been updated, program is now open source under the Creative Commons License, newer daemon and Discovery program available! A few things have changed and the program should work with all of the newer buttons, but I've decided not to update this ible yet. Gonna make some bigger changes and write a second ible for it!

Step 1: Requirements

What you will need:

  • An Amazon Dash Button (any product will do)
  • A Windows PC
    • Because I can't be bothered to program anything else
  • An Android or iOS smartphone or computer with Wifi
    • Required to join the button to wireless
  • A home or work wireless network
    • Class C subnet or smaller (ignore this if you're setting it up at home)
  • The desire to subvert Amazon
  • An app or file to open on said PC
    • A picture!
    • A program! (calc.exe lol)
    • A URL (pandora.com !)
    • Endless possibilities!

Step 2: Setup Your Button!

First step?

Setup your button!

Have an Android or iOS device? Download the Amazon App and connect your button to Wifi. Just don't select a product! Exit the application when you get to that screen!

Have a wifi connected computer but no smartphone? No problem! Hold down the button for a few seconds till it starts blinking Blue. This means it's in pairing mode. Use your wifi connected computer (or whatever) and connect to "Amazon ConfigureMe". Follow the instructions to setup wifi, and then your button's light should be off.

If you complete the setup correctly, when you push the Amazon dash button, It will light up white (connected to wifi) then turn Orange/red (cannot make purchase). IF THE BUTTON TURNS GREEN, then you've ordered something. Go and cancel that order (unless you want it) and delete the button from your account to start over.

Step 3: Pair Your Button!

Source and project files listed here! Scroll down a bit to download the latest version!
https://github.com/fiveseven808/AmazonDashButtonHa...

Extract the zip into a directory by itself (program writes to the hdd unfortunately)

Disclaimer 1: Program will run best with all other programs closed

Disclaimer 2: If you have more than one Amazon device on your network (i.e. Fire Stick, Fire TV, Echo, Dash, etc) this program will pick it up. Please skip to the end for troubleshooting tips.

  1. Open AmazonButton_Discovery.exe
  2. Program will proceed to ping every address in your class C subnet
  3. Once the thing tells you to push the button, mash your Dash button and keep it white as much as possible
  4. Keep mashing after pushing "ok"
  5. If all went well, you should see a message box that says "1 Amazon Devices found"
    1. If not, open the program to try again or skip to the end for troubleshooting tips!
  6. Click Continue if that's your button!(Wait until all the lights stop flashing first)
    1. Don't worry, the program will just not do anything if that's another Amazon device in your house
  7. Select the file, URL, playlist, program, script, etc you wish to trigger when pushing the button
  8. A confirmation message will tell you what IP the daemon will look for and what action it will trigger!
  9. Well done!

Step 4: Troubleshooting

Having Issues pairing? Read on!

  • If you have (0) Amazon Devices found, you may not have started mashing soon enough OR your computer might be too slow.
    • Try steps 1-5 again, and if you still haven't found the button, then your computer may be too slow. Open AmazonButton_Discovery.exe and immediately start mashing the button repeatedly until the results come up.
  • If you have multiple Amazon Devices and the pair was unsuccessful (it won't tell you in this version), it will try to connect to a non-dash button. This can be confirmed by completing the hack setup process but upon pushing the button, no action on the computer occurs after 10 seconds.
  • If you have multiple Amazon Devices, a future version of the hack is coming for you! For those who are a little tech savvy, I have included a workaround.
    • If more than once Amazon device is discovered, a text file will eventually open containing the IP addresses of those devices.
    • Any device that responds to pings when your button's light is "off" is not your button. Put the address of your button in the following dialogue box to continue.

Other things

  • If your Dash button is not pairing with the program for whatever reason (i.e. new MAC that didn't get entered in my search list) then fret not! If you're tech savvy enough a commenter has alerted me to a temporary solution!
    • If you can figure out the IP of your dash button (if you can do a DHCP reservation, even better!) you can use the AmazonButton_v2.exe program and start the daemon yourself!
      i.e. "amazonbutton_v2 192.168.1.15 calc.exe"

3 People Made This Project!

Recommendations

  • For the Home Contest

    For the Home Contest
  • Game Design: Student Design Challenge

    Game Design: Student Design Challenge
  • Make It Bridge

    Make It Bridge

106 Comments

0
Thivan
Thivan

Question 4 years ago

Bonjour, est-ce possible de programmer le bouton pour qu'il allume un PC? Si oui, peut-il en plus l’éteindre si je clique lorsque le PC est allumé?

Merci d'avance

0
rschiffman
rschiffman

6 years ago

Hi there, Thank you for sharing this! I'm a noob and trying to see if I can set this up as a "silent doorbell" for my networking class, so I apologize if I'm missing something completely obvious. My question is in regards to part 2, when using a PC to set up the dash button. I am able to see the Amazon ConfigureMe in the wifi options and even connect to it. However, I'm confused by "Follow the instructions to setup wifi, and then your button's light should be off." When I click on the Amazon ConfigureMe, my computer connects, but does nothing else and the dash button continues to blink blue. I was wondering if you could get into more detail about how to set up the dash button using a PC. Thanks again, I appreciate you sharing this!

0
fiveseven808
fiveseven808

Reply 6 years ago

Hi! Sorry for the late reply. If you don't wish to use a mobile device to setup the Amazon button, the process is a bit more involved.

Since you're in a networking class, I assume you're familiar with finding and navigating to a default gateway? Connect to the Amazon dash button with your PC, Find and http to the default gateway, and via the built in webserver you can setup the Wifi settings for the button.

I strongly suggest you setup the button with the mobile app and associate it with your Amazon account though. I realized if you do that, and you push the button at least once (Even if you didn't "select a product") the next time you buy something from Amazon normally (not with the button) you will recieve a $5 credit! Doesn't matter what you buy!!!

0
qyut
qyut

Reply 6 years ago

I tried to configure the button using a computer w/ Wi-Fi by connecting to the "Amazon ConfigureMe" network and then browsing to 192.168.0.1 (the button's IP), but all it shows me is the serial #, MAC Address and firmware version.... I don't see anyway to enable Wi-Fi on the button. What am I missing? thanks

0
fiveseven808
fiveseven808

Reply 6 years ago

Unfortunately I believe at some point Amazon has changed the firmware on their buttons and no longer allows the buttons to setup via their built in web server.

0
FrancescoP78
FrancescoP78

6 years ago

can i send a post using dashbutton directly to an arduino D1 mini??

0
fiveseven808
fiveseven808

Reply 6 years ago

post? like a POST request? Unfortunately you wont be able to go directly from dash button to arduino, but if you like, you could create a small script to send your POST request and activate it with this program!

0
yesnoj
yesnoj

Reply 6 years ago

Hi, finally i've found the solution to my problem. Using a script on D1mini that intercept the ARP packet, it detect any time the dashbutton is pressed, than i can make a post directly from arduino. The dashbutton is only used to send an "hello world" to the net where the arduino is listen. :)
http://qiita.com/7of9/items/9bcdfa8223b6ec791a5c look at here...

0
AlexB532
AlexB532

6 years ago

Hey people, any hacking experts here?

1) Can you make a mic work after set up once again - on each pressing of the button?

2) Can you send whats a mic is taking in over the same wifi instead of a simple mac address call?

0
fiveseven808
fiveseven808

Reply 6 years ago

Hey there, unfortunately there is no way to directly access the microphone on the device without building and designing custom firmware. Unfortunately I am not aware of any custom firmware that has access to the wireless bits though.

0
PleaseWork
PleaseWork

6 years ago

Hey, I have just got this running on a UK version of the Amazon Dash. It runs the batch file on my server perfectly! thank you - however, an order is still made on Amazon? have they updated the Amazon dash software recently?

0
PleaseWork
PleaseWork

Reply 6 years ago

I fixed this by blocking the Amazon Dash IP on my router!

0
fiveseven808
fiveseven808

Reply 6 years ago

Glad you got it working! Thanks for using this program!

0
CameronL30
CameronL30

6 years ago

Thanks for this! My button toggles play for my kitchen J. River Media Center zone.

Do you have instructions on how to use the Command Line Arguments to get running automatically when the computer boots? Thanks.

0
CameronL30
CameronL30

Reply 6 years ago

I figured it out. I did this and put it in a batch file:

start F:/Amazon-Dash/Button-1/AmazonButton_v4.0.exe 192.168.1.184 "D:/batch files/Play-House.bat" "Play House Zone"

0
fiveseven808
fiveseven808

Reply 6 years ago

Glad you figured it out! Thanks for using this!

0
davedeluxe
davedeluxe

6 years ago

Is it possible to get the Dash Button to work without sending my WIFI-data to Amazon?

0
fiveseven808
fiveseven808

Reply 6 years ago

If you have the older dash button versions, you would be able to web into the dash button itself (during pairing mode) and enter your credentials directly! However I am under the impression that this has changed in the recent past and is no longer an option.

0
MESHprj
MESHprj

6 years ago

Cool! We've got an internet button of our own - MESH Button!