From cda3c00fb43539e670a1de5c50e032bb36840a9f Mon Sep 17 00:00:00 2001 From: Adil Sadqi <42699429+AdilSadqi@users.noreply.github.com> Date: Sun, 23 Apr 2023 00:22:36 +0000 Subject: [PATCH] Add files via upload --- ...vert DuckyScript to Digispark Scripts.html | 44 +++++++ .../677843.png | Bin 0 -> 10195 bytes .../digiQuack.js.download | 120 ++++++++++++++++++ .../style.css | 61 +++++++++ 4 files changed, 225 insertions(+) create mode 100644 digiQuack_ Convert DuckyScript to Digispark Scripts.html create mode 100644 digiQuack_ Convert DuckyScript to Digispark Scripts_files/677843.png create mode 100644 digiQuack_ Convert DuckyScript to Digispark Scripts_files/digiQuack.js.download create mode 100644 digiQuack_ Convert DuckyScript to Digispark Scripts_files/style.css diff --git a/digiQuack_ Convert DuckyScript to Digispark Scripts.html b/digiQuack_ Convert DuckyScript to Digispark Scripts.html new file mode 100644 index 0000000..6ead33a --- /dev/null +++ b/digiQuack_ Convert DuckyScript to Digispark Scripts.html @@ -0,0 +1,44 @@ + + + + + digiQuack: Convert DuckyScript to Digispark Scripts + + + + + + + + + + + + + +
+

Convert DuckyScript scripts (of the hak5 USB Rubber Ducky) to Digispark scripts that you can use with the 1$ bad USB.

+ +

Why DuckyScript and why Digispark? It's easy! DuckyScript is simple and easy to learn and has become a standard in the BadUSB and pentesting community. + Digispark is one of the cheapest and most easily accessible bad USBs available. Combine the two using digiQuack and you have a vast arsenal of ready to run + scripts on a cheap and fun to use bad USB!

+ +

Want to convert Duckyscript to Python programs? Check out ducky2python!

+
+ +
+ + + +
+ + Github Icon + + + \ No newline at end of file diff --git a/digiQuack_ Convert DuckyScript to Digispark Scripts_files/677843.png b/digiQuack_ Convert DuckyScript to Digispark Scripts_files/677843.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1b5bef1ae9ed5218e0588070769e13287566b6 GIT binary patch literal 10195 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":"55", "?":"56", "@":"31", "[":"47", "]":"48", "^":"35", + "_":"45", "`":"53", "{":"47", "|":"49", "}":"48", "~":"53"}; + + // Process each line from the ducky script: + for (line = 0; line < duckyScript.length; line++){ + + // Check if the statement is a comment, delay, string, repeat or key combination + if(duckyScript[line].slice(0,3) == "REM"){ + previousStatement = duckyScript[line].replace("REM","\t//"); + }else if (duckyScript[line].slice(0,5) == "DELAY"){ + previousStatement = "\tDigiKeyboard.delay(" + parseInt(duckyScript[line].slice(6)) + ");"; + }else if (duckyScript[line].slice(0,6) == "STRING") { + previousStatement = "\tDigiKeyboard.print(\"" + duckyScript[line].slice(7).replaceAll("\\", "\\\\").replaceAll("\"", "\\\"") + "\");"; + }else if (duckyScript[line].slice(0,6) == "REPEAT"){ + var repetitions = parseInt(duckyScript[line].slice(7)) - 1; + for (i = 0; i < repetitions; i++){ + digisparkScript += previousStatement; + digisparkScript += "\n"; + + // Write Default Delay between the commands if it exists: + if (defaultDelay != 0){ + digisparkScript += "\tDigiKeyboard.delay(" + defaultDelay + ");\n"; + } + } + }else{ + // Write beginning of command: + previousStatement = "\tDigiKeyboard.sendKeyStroke("; + // Split statement into keys + keys = duckyScript[line].split(" "); + // Go through the keys matching them through the dictionary to Digispark keys + for (j = 0; j < keys.length; j++){ + if (keys[j] in ducky2digi){ + previousStatement += ducky2digi[keys[j]] + ","; + }else{ + // If it is not in the dictionary + previousStatement += "UNDEFINED_KEY" + ","; + } + } + // Remove last comma and add a parenthesis + previousStatement = previousStatement.slice(0, previousStatement.length - 1) + ");"; + } + + // Write command to output file and add a new line \n : + digisparkScript += previousStatement; + digisparkScript += "\n"; + + // Write Default Delay if it exists: + if (defaultDelay != 0){ + digisparkScript += "\tDigiKeyboard.delay(" + defaultDelay + ");\n"; + } + } + digisparkScript += "}"; + // Write Output + document.getElementById('outputBox').value = digisparkScript; +} \ No newline at end of file diff --git a/digiQuack_ Convert DuckyScript to Digispark Scripts_files/style.css b/digiQuack_ Convert DuckyScript to Digispark Scripts_files/style.css new file mode 100644 index 0000000..ee44487 --- /dev/null +++ b/digiQuack_ Convert DuckyScript to Digispark Scripts_files/style.css @@ -0,0 +1,61 @@ +body{ + font-family: Arial, Helvetica, sans-serif; + background-color: #f4f4f4; + color: #555; + font-size: 16px; + margin: 0; + line-height: 1.6em; + text-align: center; +} + +a{ + text-decoration: none; + color:inherit; +} + +.navbar{ + background-color: black; + margin: none; + padding: 10px; + width: 100%; + height: auto; + line-height: 0.5em; + font-size: 18px; +} + +.navbar h1{ + color: white; + font-family: Arial, Helvetica, sans-serif; +} +.about{ + text-align: center; +} + +.container{ + width: 75%; + margin: auto; + overflow: hidden; +} + +textarea{ + width: 100%; + font-size: 14px; + height: auto; +} + +button{ + font-size: 18px; + padding: 5px; + border-radius: 5px; + margin: 10px; + border-width: 0px; + background-color: #c9ccd1; +} + +img{ + height:auto; + width: auto; + max-width: 80px; + max-height: 80px; + margin: 10px; +} \ No newline at end of file