Build your own WiFi jammer with an ESP8266.
What it is
It’s a device which performs a deauth attack.
You select the clients you want to disconnect from their network and start the attack. As long as the attack is running, the selected devices are unable to connect to their network.
The 802.11 WiFi protocol contains a so called deauthentication frame. It is used to disconnect clients safely from a wireless network.
Because these packets are unencrypted, you just need the mac address of the WiFi router and of the client device which you want to disconnect from the network. You don’t need to be in the network or know the password, it’s enough to be in its range.What an ESP8266 is
Use it only for testing purposes on your own devices!
Please check the legal regulations in your country before using it. Jamming transmitters are illegal in most countries and this device can fall into the same category (even if it’s technically not the same).
My intention with this project is to draw attention to this issue. This attack shows how vulnerable the 802.11 WiFi standard is and that it has to be fixed.
The only thing you will need is a computer and an ESP8266 with at least 1Mb of flash memory.
I recommend you to buy a USB breakout/developer board, because they have 4Mb flash and are very simple to use. It doesn’t matter which board you use, as long as it has an ESP8266 on it.
(If you using an ESP-01 with just 512kb, you can comment out the mac vendor list in data.h.)
1 Install Arduino and open it.
2 Go to
http://arduino.esp8266.com/stable/package_esp8266com_index.json to the Additional Boards Manager URLs. (source: https://github.com/esp8266/Arduino)
4 Go to
5 Type in
6 Select version
2.0.0 and click on
Install (must be version 2.0.0!)
7 Go to
8 Open the folder path under
More preferences can be edited directly in the file
9 Go to
user_interface.h with a text editor
11 Scroll down and before
#endif add following lines:
typedef void (*freedom_outside_cb_t)(uint8 status);
int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb);
int wifi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);
don't forget to save!
12 Go to the SDK_fix folder of this project
13 Copy ESP8266WiFi.cpp and ESP8266WiFi.h
14 Past these files here
packages > esp8266 > hardware > esp8266 > 2.0.0 > libraries > ESP8266WiFi > src
15 Open esp8266_deauther > esp8266_deauther.ino in Arduino
16 Select your ESP8266 board at Tools > Board and the right port at Tools > PortIf no port shows up you may have to reinstall the drivers.
17 Upload! Note: If you use a 512kb version of the ESP8266, you need to comment out a part of the mac vendor list in data.h. Your ESP8266 Deauther is now ready!