Introduction: Make WiFi Jammer With ESP8266 - Hack Any WiFi Without Password!

Picture of Make WiFi Jammer With ESP8266 - Hack Any WiFi Without Password!

Hey friends, Its Kedar Here, Have you ever wanted to block all wifi signals. or just want to kick someone out from wifi or a neighbors wifi. Well this is it guys your wait is over. Here is the $8 DIY Wifi Jammer to try for yourself.
To see how effective this wifi jammer works I suggest you to check my video here

This jammer is so tiny you can fit into pocket. and carry it anywhere. it can powered through your power bank or 3.7v lipo battery. You can select which wifi network you want to jamm and attck on it . But be sure this is just for education purpose do not use for wrong purposes.

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.

You can perform multiple attacks on this device such as you can jam any particular wifi network or you can do beacon spam or random beacon spam. or you can simple deauth all. Lets start making it.

See How The Jammer Works

https://youtu.be/N5JVQ-m5Kd0

You can use this Mobile app to control this Wifi Jammer

http://geni.us/PQhB

Step 1: Get Your Parts Ready !

Picture of Get Your Parts Ready !

So to make this wifi jammer mainly you will need only one part esp8266.

you can buy this perticular version of esp8266 as this as a nodemcu firmware on it and it is easy to program without any programmer. This esp8266 has a build in programmer.
you can buy that here
1) ESP8266
http://geni.us/1LLaBJR
2) Battery (optional)
http://geni.us/okAOH

Here is Full Instruction video

https://youtu.be/N5JVQ-m5Kd0

Step 2: Get Your Arduino Compiler Ready

Picture of Get Your Arduino Compiler Ready

Download the latest Arduino compiler from the Arduino website here
https://www.arduino.cc/en/Main/Software

1 Install Arduino and open it.
2 Go to File > Preferences
3 Add http://arduino.esp8266.com/stable/package_esp8266com_index.json

to the Additional Boards Manager URLs.

4 Go to Tools > Board > Boards Manager

5 Type in esp8266
6 Select version 2.0.0 and click on Install (must be version 2.0.0)
7 Go to File > Preferences

8 Open the folder path under More preferences can be edited directly in the file
don't forget to save!

9 Go to packages > esp8266 > hardware > esp8266 > 2.0.0 > tools > sdk > include
10 Open user_interface.h file with your favourite text editor or just wordpad.

11 Scroll down and before #endif add following lines: if you cant see correct copy it from the txt file included in the project files

typedef void (**freedom_outside_cb__t)(uint8 status);
int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb); void wifi_unregister_send_pkt_freedom__cb(void); int wifi_send_pkt_freedom(uint8 **buf, int len, bool sys_seq);


don't forget to save!

Step 3: Download the Project

Picture of Download the Project

1 Download project files from here (Credit goes to the orginal creator spacehuhn)

http://geni.us/A5cOYc

2 Open Wifi Jammer > esp8266_deauther > esp8266_deauther.ino in Arduino

3 Select your ESP8266 board at Tools > Board. I used NodeMCU 0.9 but you can try NodeMCU 1.0 or Generic ESP8266 Module

4 Select your programmer at Tools > Programmer > ArduinoISP

5 Select the right port no at Tools > Port If no port shows up you may have to reinstall the drivers.

6 Upload!

Your Wifi Jammer is now ready!

Step 4: How to Use Wifi Jammer

Picture of How to Use Wifi Jammer

1 First power up your ESP8266
You can use your smartphone if you have a USB OTG cable. or micro usb cable with a power bank or usb wall adapter.

2 Now you can controll your jammer using any smartphone or PC just Connect to ESP8266 Module so
Scan for WiFi networks from your Mobile or PC or MAC and connect to AndroidAP . The password is killwifi . You can change this SSID and Password from the code you uploaded. Once connected, you can use this ANDROID app to control this Wifi Jammer http://geni.us/PQhB

OR you can open up your browser and go to 192.168.4.1

3 You can now scan for networks...
Note: While scanning the ESP8266 will shut down its access point, so you may have to go to your settings and reconnect to the WiFi network manually.

...and start different attacks.

4 Click on the attack tab
choose deauth all
boom everyone on the wifi should be disconnected now

you can try other attacks as well

Happy hacking :)

Comments

Red0072 (author)2017-10-30

i keep getting this when i try to do the last step for uploading

Arduino: 1.8.4 (Windows 10), Board: "NodeMCU 0.9 (ESP-12 Module), 80 MHz, Serial, 115200, 4M (3M SPIFFS)"

Build options changed, rebuilding all
C:\Users\S527321\AppData\Local\Temp\Temp1_esp8266_deauther-master.zip\esp8266_deauther-master\esp8266_deauther\esp8266_deauther.ino:67:22: fatal error: NameList.h: No such file or directory

#include "NameList.h"

^

compilation terminated.

exit status 1
Error compiling for board NodeMCU 0.9 (ESP-12 Module).

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

can someone plz help me

Kevin20 (author)2017-03-02

I uploaded it to the board but it gives me a time out when i search for AP's

BillW151 (author)Kevin202017-09-27

I know this is very late but you can change the AP search time on the clients page

TanakaL (author)2017-09-13

Arduino: 1.8.4 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Serial, 115200, 4M (3M SPIFFS)"

sketch\APScan.cpp: In member function 'bool APScan::start()':

APScan.cpp:18: error: no matching function for call to 'ESP8266WiFiClass::scanNetworks(bool, bool&)'

results = WiFi.scanNetworks(false, settings.apScanHidden); // lets scanNetworks return hidden APs. (async = false & show_hidden = true)

^

sketch\APScan.cpp:18:59: note: candidate is:

In file included from sketch\APScan.h:6:0,

from sketch\APScan.cpp:1:

C:\Users\LTanaka\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\ESP8266WiFi\src/ESP8266WiFi.h:243:12: note: int8_t ESP8266WiFiClass::scanNetworks(bool)

int8_t scanNetworks(bool async = false);

^

C:\Users\LTanaka\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\ESP8266WiFi\src/ESP8266WiFi.h:243:12: note: candidate expects 1 argument, 2 provided

exit status 1

no matching function for call to 'ESP8266WiFiClass::scanNetworks(bool, bool&)'

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

WHY?????????????

GiorgosN7 made it! (author)2017-06-30

Hello guys,

After i uploaded the code,i can't connect with
192.168.4.1.I get errors while i m trying to connect.Something with the
web Browser? (I have minimized all htmls csc.etc files ,converted them
and pasted the binary code to data.h properly.) Any ideas how to solve
it?

sebiman88 (author)GiorgosN72017-09-02

there are two different addresses and they vary often so its good to have both written down

LiP3 (author)2017-07-30

Hi, i want to know the attack distance of the ESP 8266.

sebiman88 (author)LiP32017-09-02

around the same distance as your phone

ArmageddonO (author)2017-09-01

Is it possible to reverse the hack? As in, reconnect everyone that was on the WiFi?

dankakot05 (author)2017-08-07

not able to upload files. can anyone help?

berkin88 (author)2017-03-09

Arduino:1.8.1 (Windows 10), Kart:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Serial, 115200, 4M (3M SPIFFS)"

In file included from sketch\Attack.h:7:0,

from sketch\Attack.cpp:1:

C:\Users\Berkin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0/tools/sdk/include/user_interface.h:451:39: error: 'freedom_outside_cb_t' was not declared in this scope

int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb); void wifi_unregister_send_pkt_freedom__cb(void); int wifi_send_pkt_freedom(uint8 **buf, int len, bool sys_seq);

^

sketch\Attack.cpp: In member function 'bool Attack::send(uint8_t*, int)':

Attack.cpp:41: error: cannot convert 'uint8_t* {aka unsigned char*}' to 'uint8** {aka unsigned char**}' for argument '1' to 'int wifi_send_pkt_freedom(uint8**, int, bool)'

if(wifi_send_pkt_freedom(buf, len, 0) == -1){

^

sketch\Attack.cpp: In member function 'void Attack::run()':

Attack.cpp:179: error: cannot convert 'uint8_t* {aka unsigned char*}' to 'uint8** {aka unsigned char**}' for argument '1' to 'int wifi_send_pkt_freedom(uint8**, int, bool)'

if(wifi_send_pkt_freedom(deauthPacket, 26, 0) == -1){/*

^

Attack.cpp:190: error: cannot convert 'uint8_t* {aka unsigned char*}' to 'uint8** {aka unsigned char**}' for argument '1' to 'int wifi_send_pkt_freedom(uint8**, int, bool)'

if(wifi_send_pkt_freedom(deauthPacket, 26, 0) == -1){/*

^

Attack.cpp:221: error: cannot convert 'uint8_t* {aka unsigned char*}' to 'uint8** {aka unsigned char**}' for argument '1' to 'int wifi_send_pkt_freedom(uint8**, int, bool)'

if(wifi_send_pkt_freedom(packet, packetSize, 0) == -1){/*

^

exit status 1

cannot convert 'uint8_t* {aka unsigned char*}' to 'uint8** {aka unsigned char**}' for argument '1' to 'int wifi_send_pkt_freedom(uint8**, int, bool)'

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

the0ne25 (author)berkin882017-07-31

I have the same issue here, how did you fix it?

Yuniar (author)2017-07-15

http://arduino.esp8266.com/stable/package_esp8266c... this link is 2.3 version, and your packages http://geni.us/PQhB is 2.0 version.

i cant made it. my program on arduino idle its just 1 tab, and your 12 tab.

i think i made a mistake or miss the step, would you help me?

tirelesszeal (author)2017-07-09

How to change ssid and password?? Help

wasimi2 (author)2017-06-15

Arduino: 1.8.1 (Windows 8), Board: "Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None"

Build options changed, rebuilding all

In file included from C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.h:26:0,

from C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:26:

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiType.h:35:14: error: multiple definition of 'enum WiFiMode'

typedef enum WiFiMode

^

In file included from C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:25:0:

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFi.h:39:6: error: previous definition here

enum WiFiMode { WIFI_OFF = 0, WIFI_STA = 1, WIFI_AP = 2, WIFI_AP_STA = 3 };

^

In file included from C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.h:26:0,

from C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:26:

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiType.h:38:13: error: invalid type in declaration before ';' token

} WiFiMode_t;

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp: In member function 'bool ESP8266WiFiAPClass::softAP(const char*, const char*, int, int)':

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:86:14: error: 'class ESP8266WiFiClass' has no member named 'enableAP'

if(!WiFi.enableAP(true)) {

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:88:45: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[AP] enableAP failed!\n");

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:94:54: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[AP] SSID too long or missing!\n");

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:100:62: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[AP] fail passphrase to long or short!\n");

^

In file included from C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:25:0:

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFi.h:390:10: error: 'bool ESP8266WiFiClass::_persistent' is protected

bool _persistent;

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:127:17: error: within this context

if(WiFi._persistent) {

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:135:51: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[AP] set_config failed!\n");

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:140:52: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[AP] softap config unchanged\n");

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:144:58: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[AP] DHCP not started, starting...\n");

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:156:63: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[AP] IP config Invalid resetting...\n");

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:165:53: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[AP] wifi_get_ip_info failed!\n");

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp: In member function 'bool ESP8266WiFiAPClass::softAPConfig(IPAddress, IPAddress, IPAddress)':

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:180:150: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[APConfig] local_ip: %s gateway: %s subnet: %s\n", local_ip.toString().c_str(), gateway.toString().c_str(), subnet.toString().c_str());

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:181:14: error: 'class ESP8266WiFiClass' has no member named 'enableAP'

if(!WiFi.enableAP(true)) {

^

In file included from C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:25:0:

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFi.h: In member function 'bool ESP8266WiFiAPClass::softAPdisconnect(bool)':

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFi.h:390:10: error: 'bool ESP8266WiFiClass::_persistent' is protected

bool _persistent;

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:265:13: error: within this context

if(WiFi._persistent) {

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:273:57: error: 'DEBUG_WIFI' was not declared in this scope

DEBUG_WIFI("[APdisconnect] set_config failed!\n");

^

C:\Users\wasim_imani\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp:277:20: error: 'class ESP8266WiFiClass' has no member named 'enableAP'

ret = WiFi.enableAP(false);

^

exit status 1

Error compiling for board Generic ESP8266 Module.

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

error occurs please give solution

vedantp3 (author)2017-02-27

okay, Firstly I'm trying to do this,(watch this video) (Kedar it's your own Video)
https://www.youtube.com/watch?v=N5JVQ-m5Kd0&t=649s
I did exact same things which you're doing. plus I'm windows 7 user.
My actual problem starts at 8:38(pause the video at it and have a look.)
in your Video it is showing (Updating XXX bytes n blah blah blah) at 8:38.
but in mine, this error is occurring,(the port 53 is choosen which is only i can select & using COM3. Which is only it's appearing.)
Sketch uses 522510 bytes (50%) of program storage space. Maximum is 1044464 bytes.
Global variables use 51560 bytes (62%) of dynamic memory, leaving 30360 bytes for local variables. Maximum is 81920 bytes.
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_open failed
I did Everything right just when I reached at this uploading part the problem occurred.
I have this chip -> https://www.amazon.com/HiLetgo-Version-NodeMCU-Internet-Development/dp/B010O1G1ES/ref=sr_1_3?ie=UTF8&qid=1487921045&sr=8-3&keywords=ESP8266
2nd. I'm not a Electrician nor anything and I don't even have stuffs to do Advance check.
I explained My exact problem,
hope you will help...

raffelloo (author)vedantp32017-05-24

hello , did you sort problem>? what was a fix?

QFTW (author)2017-05-16

What port do I use for a macbook? I dont see COM1.

mrtejaslol (author)2017-03-11

This instructable code has serious flaws try https://www.instructables.com/id/WiFi-Jammer-Using-ESP8266/

Prince FloroS (author)2017-03-06

How to fix this error?


exit status 1

cannot convert 'uint8_t* {aka unsigned char*}' to 'uint8** {aka unsigned char**}' for argument '1' to 'int wifi_send_pkt_freedom(uint8**, int, bool)'

AdhimR1 (author)2017-03-05

i follow the instruction and success. but when i scanning there's nothing AP list appear.
other issue that i cannot change the AP name..it's still AndroidAP..

sam yo (author)2017-02-25

hey can you pls tell me the logic of the codes coz the code isn't working in my case

About This Instructable

57,372views

65favorites

License:

Bio: Ideas Into Reality !
More by Kedar Nimbalkar:Fidget Spinner that spins itself !DIY Wireless Charging for Your Gaming Mouse ! - Goodbye Batteries Make Coca Cola Soda Fountain Dispenser Machine at Your Home Fridge !
Add instructable to: