Category

MALDUINO ELITE – very first IMPRESSIONS

A while back, I composed an article about Malduino, an Arduino-based, open-source BadUSB device. I discovered the job fascinating so I signed up for an Elite version as well as sure enough, the friendly postman dropped it off in my mail box last Friday, which means I got to play around with it over the weekend. For those who missed the article, Malduino is USB gadget which is able to emulate a keyboard as well as inject keystrokes, among other things. When in a appropriate casing, it will just look like a USB flash drive. It’s like those things you see in the movies where a guy plugs in a gadget as well as it auto hacks the computer. It ships in two versions, Lite as well as Elite, both based on the ATmega32U4.

The Lite version is truly small, besides the USB connector it only contains a switch, which enables the individual to select between running as well as programming mode, as well as a LED, which indicates when the script has completed running.

Original Malduino Elite sketch as well as Lite prototype
The Elite version is bigger, includes a Micro-SD card visitor as well as four DIP switches, which enable the individual to select which script to run from the card. It likewise has the LED, which indicates when a script has completed to run. This enables the individual to shed the firmware only when as well as then program the keystroke injection scripts that kept in the Micro-SD card, in contrast to the Lite version which needs to be flashed each time a individual wishes to run a different script.

These are the two Malduinos as well as since they are programmed directly from the Arduino IDE, every function I just mentioned can be re-programmed, re-purposed or dropped all together. You can buy one as well as just select to utilize it like a ‘normal’ Arduino, although there are not a great deal of pins to play around with. This flexibility was one the very first things I liked about it as well as really drove me to take part in the crowd-funding campaign. checked out on for the full review.

Die Hardware

Malduino Elite vs USB flash drive
So the Elite board shown up as routine as well as I discovered myself a long time to look an it. in spite of being longer than the Lite version, it’s still rather small, measuring approximately 4.6 cm x 1.1 cm (around 1.8 in x 0.43 in), which you can quickly adapt to an old USB case, although you’ll have to cut some holes for the DIP switches as well as the Micro-SD card. In the crowd-funding campaign, the original sketch was for a 3 DIP switch version however the final Elite has four, which I discovered nice. I plugged it in to an old computer, after some consideration about which firmware it might ship with as well as what it might do to my laptop, as well as sure sufficient a red LED appeared. as well as that was it. nichts anderes.

After playing around with the switches as well as exercising some RTFM, I realised that the firmware it ships with is most likely some kind of Q.C. test for the dips, which makes the Malduino output the numbers 1 to 4 (actually simulating a keypress 1 to 4), depending upon which switches are ON. So far so good, it works as well as I’ve seen worse PCB boards than this one. The board has holes for six pins, which I did not trace to the micro-controller as well as I don’t understand what they are for.

Die Einrichtung

Setting up the Malduino needs that you have the Arduino IDE installed as well as as much as date. You’ll requirement to open up the board manager as well as set up the Sparkfun boards since the Elite is programmed as a ‘Sparkfun pro Micro’ running at 3.3 V as well as 8 MHz. then you requirement to go the Malduino script Converter website which serves a number of purposes:

It enables to convert scripts between the Lite as well as Elite versions

It enables you to select your keyboard design language

It auto produces the Arduino job for you to import to the IDE

For the Elite version, just produce a simple or even empty script to download the project, since when in ‘normal’ operation you will just flash the Malduino when as well as then utilize the Micro-SD card to store new scripts.

A note on flashing, if you are utilizing a Debian-based distribution you may come across some issues like I did as well as not be able to flash the device. like the individual on this most useful post, my modem-manager was trying to talk with the Malduino after every reset as well as confused AVRDUDE to death. The solution is to add udev rules to “/etc/udev/rules.d/77-mm-usb-device-blacklist-local.rules”, kudos to [socrim]:

1.
2.
3
4.
5
6.
7.
8.
ACTION!=”add|change”, GOTO=”mm_usb_device_blacklist_local_end”
SUBSYSTEM!=”usb”, GOTO=”mm_usb_device_blacklist_local_end”
ENV{DEVTYPE}!=”usb_device”, GOTO=”mm_usb_device_blacklist_local_end”

ATTRS{idVendor}==”1b4f” ATTRS{idProduct}==”9204″, ENV{ID_MM_DEVICE_IGNORE}=”1″
ATTRS{idVendoder} == & quot; 1b4f & quot; Attrss {idproduct} == & quot; 9203 & quot;, env {id_mm_device_ignore} = & quot; 1 & quot;

Label = & quot; MM_USB_DEVICE_BRACKList_Local_end & quot;

Die Software

Da ich Linux laufe, ist eine schnelle Verknüpfung, um einen Befehl auszuführen, der ALT-F2-Kombination. Also drückte ich das in eine Daten und speichern Sie ihn auf 1111.txt. Die Elite sucht die Micro-SD-Karte für eine Daten, die dem aktuellen DIP-Schalterzustand entspricht. Lässt den DIP-Schalter 2 sowie 4 eingeschaltet sein. In diesem Fall versucht die Softwareanwendung, die Daten namens 0101.txt zu ermitteln, sowie deren Inhalte (wie in der DIP-Schalteraufordnung 1, 2,3,4 sowie nicht die binäre Darstellung der Nummer 2 sowie 4 ). Wenn es fertig ist, blinkt die rote LED schnell. Mein einfaches Skript war:

1.
2.
3
4.
5.
6.
7.
8.
9.
10.
Verzögerung 2000.
Alt f2.
Verzögerung 1000.
String Xterm.
Verzögerung 1000.
BETRETEN
Verzögerung 1000.
String-ID.
Verzögerung 1000.
BETRETEN

Aber es funktionierte nicht. Fast alle Befehle funktionierten jedoch, dass die Alt-F2-Combo nicht ordnungsgemäß funktionierte. Nah, jedoch keine Zigarre. Kein Alt-F2, kein Fix-Befehlsfenster. Ich habe den Quellcode schon ein bisschen gesprochen, da ich wirklich nicht viel Zeit in meinen Händen hatte, aber ich musste das herausfinden. Der beleidigende Code war dies:

1.
2.
3
4.
5.
6.
sonst, wenn (entspricht (S, E, “F1”, 3)) Tastatur.Drücken (key_f1); & lt; / pre & gt;

sonst, wenn (gleich (S, E, “F2”, 3)) Tastature.Presse (key_f2);

sonst, wenn (entspricht (S, E, “F10 & quot;, 3)) keyboard.press (key_f10);
sonst, wenn (entspricht (s, e, “f11”, 3)) keyboard.press (key_f11);

Eine benutzerdefinierte Equals-Funktion ergab die Größe 3 für die Saiten der Funktionstasten wie “F2”. Es war okay für “F10”, “F11” sowie “F12”, fehlte jedoch für den Rest der Tasten. Das Ändern von 3 bis 2 hat den Trick getan, aber mein portugiesischer Keyboard-Design begann, andere Testskripts zu stören. Also habe ich den Code geändert, um PT sowie britische Layouts einzuschließen, um sie in einer # -define zur Kompilierzeit zu ändern.

Es wäre großartig, wenn es möglich wäre, vom Computer als routinemäßiges USB-Volume auf die SD-Karte zuzugreifen. Ich verstehe nicht genau genau, wie realisierbar ist, das ist jedoch nicht die vorliegende Firmware. Ich wollte immer noch in der Lage sein, das Material einer beliebigen Daten auf der SD-Karte auf den Bildschirm auszugeben, sodass ich eine weitere Skriptfunktion mit dem Namen Echofilehex hinzugefügt habe, die das Material einer Daten in der SD-Karte als Getaway-Zeichen ausgibt. Wenn beispielsweise die Daten a.txt “AAA” enthält, würde der Skriptbefehl echofilehex a.txt “\ x41 \ x41 \ x41” ausgeben. Dies kann nützlich sein, um Binärdaten in Printf oder Echo -e zu echo -e zu echo -e zu echo -e nützlich sein, in Linux zumindest.

Inzwischen hatte ich Schwierigkeiten, den ursprünglichen Code zu lesen. Wissen Sie, wir alle haben unterschiedliche Programmierstile. Bring mich nicht falsch, ich wurde verstanden, um einen durcheinander verbringlichen Spaghetti-Code zu komponieren. Ich suche manchmal alte Jobs, die nach einigen Libs oder Klassen suchen, die ich kodiert habe, sowie Frage, WHO der Heck, der diesen dampfenden Code-Stapel komponierte? ‘Ich war es, ich war ich. Ich habe trotzdem angefangen, ein bisschen richtig zu modifizieren und dort zu modifizieren wie auch das gesamte Code ändert. Das ist die Schönheit sowie der Fluch der Open-Source. Wenn Sie neugierig sind, können Sie es hier überprüfen.

Fazit

Alles in allem, und trotz einiger Unebenheiten freue ich mich eher mit Malduino. Es ist das, was ich erwartet hatte: Eine offene Plattform für BACKUSB-Angriffe, die in den Kinderschuhen ist. Es ist unglaublich, dass wir alles basteln können, anpassen, es besonders anpassen, es viel besser machen oder einfach nur zu unseren Bedürfnissen passen. Ich hoffe, dass ein echter Nachbarschaft beginnen kann, damit wir seine volle potenzielle Auftritte sehen können. Meine kurze Auflistung umfasst das Simulieren anderer USB-Geräte, ein viel besseres SD-Kartenmanagement sowie das Erweiterung des Gadgets über die nicht verwendeten Pins. Was würdest du hinzufügen?

Es ist eine lange Methode, um zu gehen, und ein großes Angebot kann schief gehen, also großes Glück mit dem Job [Seytonic]!