Mostrando entradas con la etiqueta Electrónica. Mostrar todas las entradas
Mostrando entradas con la etiqueta Electrónica. Mostrar todas las entradas

miércoles, 3 de enero de 2024

wifi scan

 Escaneando redes wifi con esp32, programando en el IDE de arduino


#include "WiFi.h"


void setup()

{

    Serial.begin(115200);


    // Set WiFi to station mode and disconnect from an AP if it was previously connected.

    WiFi.mode(WIFI_STA);

    WiFi.disconnect();

    delay(100);


    Serial.println("Setup done");

}


void loop()

{

    Serial.println("Scan start");


    // WiFi.scanNetworks will return the number of networks found.

    int n = WiFi.scanNetworks();

    Serial.println("Scan done");

    if (n == 0) {

        Serial.println("no networks found");

    } else {

        Serial.print(n);

        Serial.println(" networks found");

        Serial.println("Nr | SSID                             | RSSI | CH | Encryption");

        for (int i = 0; i < n; ++i) {

            // Print SSID and RSSI for each network found

            Serial.printf("%2d",i + 1);

            Serial.print(" | ");

            Serial.printf("%-32.32s", WiFi.SSID(i).c_str());

            Serial.print(" | ");

            Serial.printf("%4d", WiFi.RSSI(i));

            Serial.print(" | ");

            Serial.printf("%2d", WiFi.channel(i));

            Serial.print(" | ");

            switch (WiFi.encryptionType(i))

            {

            case WIFI_AUTH_OPEN:

                Serial.print("open");

                break;

            case WIFI_AUTH_WEP:

                Serial.print("WEP");

                break;

            case WIFI_AUTH_WPA_PSK:

                Serial.print("WPA");

                break;

            case WIFI_AUTH_WPA2_PSK:

                Serial.print("WPA2");

                break;

            case WIFI_AUTH_WPA_WPA2_PSK:

                Serial.print("WPA+WPA2");

                break;

            case WIFI_AUTH_WPA2_ENTERPRISE:

                Serial.print("WPA2-EAP");

                break;

            case WIFI_AUTH_WPA3_PSK:

                Serial.print("WPA3");

                break;

            case WIFI_AUTH_WPA2_WPA3_PSK:

                Serial.print("WPA2+WPA3");

                break;

            case WIFI_AUTH_WAPI_PSK:

                Serial.print("WAPI");

                break;

            default:

                Serial.print("unknown");

            }

            Serial.println();

            delay(10);

        }

    }

    Serial.println("");


    // Delete the scan result to free memory for code below.

    WiFi.scanDelete();


    // Wait a bit before scanning again.

    delay(1000);

}


quitando la encriptación y añadiendo el BSSID


#include "WiFi.h"


void setup()

{

    Serial.begin(115200);


    // Set WiFi to station mode and disconnect from an AP if it was previously connected.

    WiFi.mode(WIFI_STA);

    WiFi.disconnect();

    delay(100);


    Serial.println("Setup done");

}


void loop()

{

    Serial.println("Scan start");


    // WiFi.scanNetworks will return the number of networks found.

    int n = WiFi.scanNetworks();

    Serial.println("Scan done");

    if (n == 0) {

        Serial.println("no networks found");

    } else {

        Serial.print(n);

        Serial.println(" networks found");

        Serial.println("Nr | SSID                             | RSSI | CH | BSSID (MAC)");

        for (int i = 0; i < n; ++i) {

            // Print SSID and RSSI for each network found

            Serial.printf("%2d",i + 1);

            Serial.print(" | ");

            Serial.printf("%-32.32s", WiFi.SSID(i).c_str());

            Serial.print(" | ");

            Serial.printf("%4d", WiFi.RSSI(i));

            Serial.print(" | ");

            Serial.printf("%2d", WiFi.channel(i));

            Serial.print(" | ");

            Serial.print(WiFi.BSSIDstr(i));

            Serial.println();

            delay(10);

        }

    }

    Serial.println("");


    // Delete the scan result to free memory for code below.

    WiFi.scanDelete();


    // Wait a bit before scanning again.

    delay(1000);

}


relacione  BSSID y MAC


que es el bssid aquí 


sábado, 15 de diciembre de 2018

digispark = rubber ducky

Pasos para conseguir una rubber ducky con un arduino Digispark USB
Paso0: Tener IDE de arduino actualizada (mejor si es ultima version)

Paso1: descargar e instalar driver de la DigisparkUSB  aqui


Por defecto instala con VID=16d0 y el PID=087E

Paso2: Bajar paquete de compatibilidad de la tarjeta con IDE de Arduino, ir a Archivo -> Preferencias -> Gestor de URLs añadiremos el gestor:
http://digistump.com/package_digistump_index.json

Paso3: Instalamos y seleccionamos nuestra tarjeta DigisparkUSB de 16.5Mhz en Herramientas -> Placa -> Gestor de Tarjetas (digistump avr)
Paso3a: El teclado (#include "DigiKeyboard.h") por defecto es Ingles, asi que hay que descargar e instalar librerias de idiomas de teclado de:  https://github.com/ernesto-xload/DigisparkKeyboard

Paso4: Programamos nuestro primer Hola Mundo, en nuestro  rubber ducky=digisparkUSB

Programa ejemplo: que realiza 2 acciones cuando se conecta el rubber ducky=digisparkUSB
  1- abre block de notas de la PC, 2- Escribe Hola mundo!
#define kbd_es_es
#include "DigiKeyboard.h"
void setup() {
   DigiKeyboard.update();
   DigiKeyboard.delay(5000);
}
void loop() {
   DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
   delay(250);
   DigiKeyboard.println(F("notepad"));
   delay(250);
   DigiKeyboard.println(F("Hola mundo!"));
   while(1);
}
NOTA: Para subir este programa u otros al digisparkUSB, conectarlo al PC cuando se solicita en los mensajes del IDE de arduino, antes NO.

Programa Funcionando: