Puede descargar nuestro e-book ‘Learn Arduino from Scratch’ de este enlazar
Estaba navegando por internet en un día lluvioso y tropecé con algunas cosas interesantes. El ESP8266, además de ser un súper chip, que se puede convertir en una estación y un punto de acceso, también puede hacer algunas cosas raras en el nivel más bajo posible en el protocolo WiFi. wifi_send_pkt_freedom () es una función construida en Arduino Core que permite que el chip envíe paquetes WiFi arbitrarios.
Eso significa mucho. Todo lo que se envía en el aire, se envía mediante paquetes. Algunos de estos paquetes pueden ser texto sin formato, otros están encriptados con una clave que se comparte entre un punto de acceso y la estación conectada. Como dije, todo se envía como paquetes, incluso a qué dispositivo envió los paquetes y también su destino.
En github encontré un código que crea múltiples puntos de acceso falsos que aparecen y desaparecen casi al instante. Este código produce unos 100 puntos de acceso por segundo con SSID y direcciones MAC aleatorias. Esto se hace simplemente enviando una serie de paquetes con las partes de la dirección SSID y MAC generadas aleatoriamente.
Si bien este código no debería causar daño a nadie, no podemos descartar que algunos dispositivos antiguos no manejen la cantidad de puntos de acceso de una vez y que también podrían ser ilegales en su país. Úselo con precaución, no somos responsables de ninguna actividad maliciosa o ilegal.
El código original se puede encontrar aquí
#incluir extern "C" { #include "user_interface.h" } String alfa = "1234567890qwertyuiopasdfghjkklzxcvbnm QWERTYUIOPASDFGHJKLZXCVBNM_"; canal de bytes; // Beacon Packet buffer uint8_t paquete [128] = {0x80, 0x00, 0x00, 0x00, / * 4 * / 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, / * 10 * / 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, / * 16 * / 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, / * 22 * / 0xc0, 0x6c, / * 24 * / 0x83, 0x51, 0xf7, 0x8f, 0x0f, 0x00, 0x00, 0x00, / * 32 * / 0x64, 0x00, / * 34 * / 0x01, 0x04, / * SSID * / / * 36 * / 0x00, 0x06, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x01, 0x08, 0x82, 0x84, 0x8b, 0x96, 0x24, 0x30, 0x48, 0x6c, 0x03, 0x01, / * 56 * / 0x04}; void setup () { retraso (500); wifi_set_opmode (STATION_MODE); wifi_promiscuous_enable (1); } void loop () { // Aleatorizar el canal // canal = aleatorio (1,12); wifi_set_channel (canal); // Randomize SRC MAC paquete [10] = paquete [16] = aleatorio (256); paquete [11] = paquete [17] = aleatorio (256); paquete [12] = paquete [18] = aleatorio (256); paquete [13] = paquete [19] = aleatorio (256); paquete [14] = paquete [20] = aleatorio (256); paquete [15] = paquete [21] = aleatorio (256); // Aleatorizar el SSID (Tamaño fijo 6. Lazy ¿no?) paquete [38] = alfa [aleatorio (65)]; paquete [39] = alfa [aleatorio (65)]; paquete [40] = alfa [aleatorio (65)]; paquete [41] = alfa [aleatorio (65)]; paquete [42] = alfa [aleatorio (65)]; paquete [43] = alfa [aleatorio (65)]; paquete [56] = canal; wifi_send_pkt_freedom (paquete, 57, 0); wifi_send_pkt_freedom (paquete, 57, 0); wifi_send_pkt_freedom (paquete, 57, 0); retraso (1); }