Last active
January 23, 2025 04:26
-
-
Save droogie/bc9b3b919c9f0506ddfec3de1f7a48d8 to your computer and use it in GitHub Desktop.
Simple Teensy Keyboard "Fuzzer"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Simple Teensy Keyboard "Fuzzer" | |
#include <SoftwareSerial.h> | |
#define rxPin 27 | |
#define txPin 0 | |
#define ledPin 6 | |
#define TIME_BETWEEN_KEYS 1000 | |
int REGULAR_KEYS[] = { | |
KEY_A, KEY_B, KEY_C, KEY_D,KEY_E, KEY_F, KEY_G, KEY_H,KEY_I, KEY_J, KEY_K, | |
KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T,KEY_U, KEY_V, | |
KEY_W, KEY_X, KEY_Y, KEY_Z, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6,KEY_7, | |
KEY_8, KEY_9, KEY_0, KEY_ENTER, KEY_ESC, KEY_BACKSPACE, KEY_TAB, KEY_SPACE, | |
KEY_MINUS, KEY_EQUAL, KEY_LEFT_BRACE, KEY_RIGHT_BRACE, KEY_BACKSLASH, | |
KEY_SEMICOLON, KEY_QUOTE, KEY_TILDE, KEY_COMMA, KEY_PERIOD, KEY_SLASH, | |
KEY_CAPS_LOCK, KEY_F1, KEY_F2,KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_F7, | |
KEY_F8, KEY_F9, KEY_F10, KEY_F11, KEY_F12, KEY_PRINTSCREEN, KEY_SCROLL_LOCK, | |
KEY_PAUSE, KEY_INSERT, KEY_HOME, KEY_PAGE_UP, KEY_DELETE, KEY_END, | |
KEY_PAGE_DOWN, KEY_RIGHT, KEY_LEFT, KEY_DOWN, KEY_UP, KEY_NUM_LOCK, | |
KEYPAD_SLASH, KEYPAD_ASTERIX, KEYPAD_MINUS, KEYPAD_PLUS, KEYPAD_ENTER, | |
KEYPAD_1, KEYPAD_2, KEYPAD_3, KEYPAD_4, KEYPAD_5, KEYPAD_6, KEYPAD_7, | |
KEYPAD_8, KEYPAD_9, KEYPAD_0, KEYPAD_PERIOD, 0 | |
}; | |
int MODIFIER_KEYS[] = { | |
MODIFIERKEY_CTRL, MODIFIERKEY_RIGHT_CTRL, MODIFIERKEY_SHIFT, | |
MODIFIERKEY_RIGHT_SHIFT, MODIFIERKEY_ALT, | |
MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_GUI, MODIFIERKEY_RIGHT_GUI, 0 | |
}; | |
int MEDIA_KEYS[] = { | |
KEY_MEDIA_PLAY, KEY_MEDIA_PAUSE, KEY_MEDIA_RECORD, KEY_MEDIA_STOP, | |
KEY_MEDIA_REWIND, KEY_MEDIA_FAST_FORWARD, KEY_MEDIA_PREV_TRACK, | |
KEY_MEDIA_NEXT_TRACK, KEY_MEDIA_VOLUME_DEC, KEY_MEDIA_VOLUME_INC, | |
KEY_MEDIA_PLAY_PAUSE, KEY_MEDIA_PLAY_SKIP, KEY_MEDIA_MUTE, | |
KEY_MEDIA_EJECT, 0 | |
}; | |
int CONTROL_KEYS[] = { | |
KEY_SYSTEM_POWER_DOWN, KEY_SYSTEM_SLEEP, KEY_SYSTEM_WAKE_UP, 0 | |
}; | |
void setup() { | |
pinMode(rxPin, INPUT); | |
pinMode(txPin, OUTPUT); | |
pinMode(ledPin, OUTPUT); | |
delay(5000); //delay 5 seconds just to let you unplug the damn thing | |
} | |
void loop() { | |
int i,e; | |
/* send every media key */ | |
// for(i=0;MEDIA_KEYS[i];i++){ | |
// Keyboard.press(MEDIA_KEYS[i]); | |
// Keyboard.release(MEDIA_KEYS[i]); | |
// delay(TIME_BETWEEN_KEYS); | |
// } | |
/* send every regular key */ | |
// for(i=0;REGULAR_KEYS[i];i++){ | |
// Keyboard.press(REGULAR_KEYS[i]); | |
// Keyboard.release(REGULAR_KEYS[i]); | |
// delay(TIME_BETWEEN_KEYS); | |
// } | |
/* send every regular key, with every modifier key */ | |
for(e=0;MODIFIER_KEYS[e];e++){ | |
Keyboard.set_modifier(MODIFIER_KEYS[e]); | |
for(i=0;REGULAR_KEYS[i];i++){ | |
Keyboard.press(REGULAR_KEYS[i]); | |
Keyboard.release(REGULAR_KEYS[i]); | |
} | |
Keyboard.set_modifier(0); | |
delay(TIME_BETWEEN_KEYS); | |
} | |
/* send every regular key, with ctrl + every modifier key */ | |
for(e=0;MODIFIER_KEYS[e];e++){ | |
if ((MODIFIER_KEYS[e] | MODIFIERKEY_CTRL) != MODIFIERKEY_CTRL){ | |
Keyboard.set_modifier(MODIFIER_KEYS[e] | MODIFIERKEY_CTRL); | |
for(i=0;REGULAR_KEYS[i];i++){ | |
Keyboard.press(REGULAR_KEYS[i]); | |
Keyboard.release(REGULAR_KEYS[i]); | |
} | |
Keyboard.set_modifier(0); | |
} | |
if ((MODIFIER_KEYS[e] | MODIFIERKEY_CTRL) != MODIFIERKEY_CTRL){ | |
Keyboard.set_modifier(MODIFIER_KEYS[e] | MODIFIERKEY_RIGHT_CTRL); | |
for(i=0;REGULAR_KEYS[i];i++){ | |
Keyboard.press(REGULAR_KEYS[i]); | |
Keyboard.release(REGULAR_KEYS[i]); | |
} | |
Keyboard.set_modifier(0); | |
delay(TIME_BETWEEN_KEYS); | |
} | |
} | |
Keyboard.set_modifier(0); | |
/* ctrl + alt + every regular key */ | |
Keyboard.set_modifier(MODIFIERKEY_ALT| MODIFIERKEY_CTRL); | |
for(i=0;REGULAR_KEYS[i];i++){ | |
if (REGULAR_KEYS[i] != KEY_DELETE){ //avoid ctrl+alt+del | |
Keyboard.press(REGULAR_KEYS[i]); | |
Keyboard.release(REGULAR_KEYS[i]); | |
} | |
delay(TIME_BETWEEN_KEYS); | |
} | |
Keyboard.set_modifier(MODIFIERKEY_RIGHT_ALT | MODIFIERKEY_RIGHT_CTRL); | |
for(i=0;REGULAR_KEYS[i];i++){ | |
if (REGULAR_KEYS[i] != KEY_DELETE){ | |
Keyboard.press(REGULAR_KEYS[i]); | |
Keyboard.release(REGULAR_KEYS[i]); | |
} | |
} | |
Keyboard.set_modifier(MODIFIERKEY_ALT | MODIFIERKEY_RIGHT_CTRL); | |
for(i=0;REGULAR_KEYS[i];i++){ | |
if (REGULAR_KEYS[i] != KEY_DELETE){ | |
Keyboard.press(REGULAR_KEYS[i]); | |
Keyboard.release(REGULAR_KEYS[i]); | |
} | |
delay(TIME_BETWEEN_KEYS); | |
} | |
Keyboard.set_modifier(MODIFIERKEY_RIGHT_ALT | MODIFIERKEY_CTRL); | |
for(i=0;REGULAR_KEYS[i];i++){ | |
if (REGULAR_KEYS[i] != KEY_DELETE){ | |
Keyboard.press(REGULAR_KEYS[i]); | |
Keyboard.release(REGULAR_KEYS[i]); | |
} | |
delay(TIME_BETWEEN_KEYS); | |
} | |
Keyboard.set_modifier(0); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment