Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
AutoGadgetFS — USB-Testen leicht gemacht | Kitploit
Tools/GitHubGitHub/ehabhussein/autogadgetfs
FuzzingHardware-HackingPenetrationstests
GitHubehabhussein/autogadgetfs

AutoGadgetFS

USB-Testen leicht gemacht

Repository anzeigenWebseite
12323vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Ethereum-Spenden : 0xA919e40ddB0563918dDc174320D91992e0048477

Inhaltsverzeichnis

  1. Was ist AutoGadgetFS ?

  2. Anforderungen

  3. Das Setup

    a. Nur Gerätetest

    b. Minimales agfs-in-der-Mitte-Setup

    c. Vollständiges agfs-in-der-Mitte-Setup mit Debugging-Unterstützung

  4. Unterstützung für USB-Geräteklassen

  5. Fähigkeiten

  6. Fahrplan

  7. Installation

    a. Linux

    b. Raspberry Pi Zero mit WLAN

  8. AutoGadgetFS-Tutorial

  9. Bildschirmfotos

  10. Youtube-Playlist

  11. Slack

  12. Unterstützt von

  13. Kauf mir einen Kaffee ☕️

  14. Kontaktiere mich

  15. Möchtest du beitragen ?


Was ist AutoGadgetFS ?

AutoGadgetFS ist ein Open-Source-Framework, das es Benutzern ermöglicht, USB-Geräte und deren zugehörige Hosts/Treiber/Software ohne tiefgehende Kenntnisse des USB-Protokolls zu bewerten. Das Tool ist in Python3 geschrieben und nutzt RabbitMQ und WLAN-Zugriff, um Forschern die Durchführung von fernen USB-Sicherheitsbewertungen von überall auf der Welt zu ermöglichen. Durch die Nutzung von ConfigFS erlaubt AutoGadgetFS Benutzern, Geräte schnell zu klonen und zu emulieren, wodurch die Notwendigkeit entfällt, sich tief in die Details jeder Implementierung einzuarbeiten. Das Framework ermöglicht es Benutzern auch, eigene Fuzzer darauf aufbauend zu erstellen.


Anforderungen:

  • 💻 Host-Rechner mit Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero mit WLAN-Unterstützung
  • 🎯 Optionen für Zielmaschine:
    • Virtuelle Maschine
    • Eigenständiger Rechner
  • 🔌 2 x USB-Micro-Kabel
  • 🔱 Ziel-USB-Gerät
  • 🐞 Hardware-Debugger (Optional)

Das Setup:

```bash Device testing only:

root@kitploit:~
<div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/devtest.jpeg" width="450" height="187" /></div>

<a name="MMITM"/>```bash
Minimal agfs in the middle setup:

```bash Complete agfs in the middle setup with debugging support:

root@kitploit:~
<div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/scenario2.jpeg"/></div>

---

<a name="Usbdev"/>

### Unterstützung der USB-Geräteklasse:

[✔️] USB-HID-Geräte vollständig unterstützt (Man-in-the-Middle)

[⚠️] Nur Gerätetests .. Alle USB-Geräte (kein Man-in-the-Middle)

[⏳] Zukünftige Versionen... Alle USB-Geräte (Man-in-the-Middle)

---

<a name="Caps"/>

### Fähigkeiten:

1. Ein USB-Gerät einfach finden, auswählen und daran anschließen.
1. Jedes USB-HID-Gerät emulieren.
1. AGFS-Man-in-the-Middle-Sniffing für HID-Geräte durchführen (Kommunikation auf Festplatte speichern).
1. Geräte-Sniffing (jedes Gerät).
1. Mehrere Fuzzer ermöglichen das Fuzzing eines Geräts oder eines Hosts.
1. Zufällige Fuzzer (mit Paketen fester oder zufälliger Länge).
1. Intelligente Fuzzer, die aus früheren USB-Kommunikationen lernen.
1. Describe-Fuzzer, um dem Fuzzer mitzuteilen, welche Bytes gefuzzt werden sollen, während der Rest des Pakets gleich bleibt.
1. Gadget-Fuzzer.
1. Sequenzieller Fuzzer.
1. Control-Transfer-Enumerator.
1. Wiedergabe von Paketen aus einer Datei.
1. Wiedergabe von Paketen aus einem gespeicherten USBLyzer-Mitschnitt.
1. Visuelle Darstellung von Paketen zur einfachen Reverse-Engineering der Kommunikation.
1. Warnungen für Geräte im DFU-Modus oder wenn das Gerät Informationen preisgibt.
1. USB-Gerät und Host können sich überall im Internet befinden.
1. Überwachung plötzlicher Schnittstellenänderungen.

---

<a name="Road"/>

### Fahrplan:

1. Sniffen von Control-Transfer-Anfragen an ein Gerät und Antworten darauf.
1. MITM und Emulation aller Gerätetypen.
1. Konsolen-/QT-basierte Oberfläche.
1. Mehr Schnittstellen-/Endpunktunterstützung auf dem RPI Zero W.
1. Unterstützung weiterer Boards wie dem GreatFET.
1. Umstellung auf ein benutzerdefiniertes Board.
1. Arbeiten daran, dass der Raspberry Pi volle Unterstützung für USB-Geräteemulation mit allen Schnittstellen bietet.
1. Korrelation von gesendeten und empfangenen Paketen über Sequenznummern.

---

<a name="Installation"/>

### Installation:

<a name="Linux"/>

### Linux-Rechner:

* Hinweis: WSL/WSL2 wird aufgrund von Problemen mit USB-Durchleitung nicht unterstützt.

* Installieren Sie Python3, ipython3, git, pip und rabbitMQ-Server

    ```bash
    sudo apt install python3 ipython3 git python3-pip rabbitmq-server dfu-util
    sudo service rabbitmq-server start
    ```

* Klonen Sie das Repository

    ```bash
    git clone https://github.com/ehabhussein/AutoGadgetFS
    cd AutoGadgetFS
    ```

* Installieren Sie die Abhängigkeiten

    ```bash
    sudo -H pip3 install -r requirements.txt
    ```

* Downgrade von prompt-toolkit für eine bessere ipython-Erfahrung:

    ```bash
    sudo python3 -m pip install prompt-toolkit~=2.0
    ```

* Aktivieren Sie die Weboberfläche für rabbitMQ

    ```bash
    sudo rabbitmq-plugins enable rabbitmq_management
    http://localhost:15672/ um zur Weboberfläche zu gelangen
    ```

* Melden Sie sich mit den Anmeldedaten *guest:guest* an der Weboberfläche an.
  * HINWEIS: Wenn Sie rabbitMQ nicht auf `localhost` installieren, fügen Sie den folgenden Benutzer hinzu und melden Sie sich damit an:
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Laden Sie die rabbitMQ-Konfigurationsdatei hoch
    * Scrollen Sie im Reiter "Overview" nach unten, um Definitionen zu importieren
    * Laden Sie die Datei hoch, die sich in: *rabbitMQbrokerconfig/rabbitmq-Config.json* befindet

    ```bash
    sudo service rabbitmq-server restart
    ```

* Testen Sie die Installation

    ```python
    sudo ipython3
    
    Python 3.7.7 (default, Apr  1 2020, 13:48:52)
    Type 'copyright', 'credits' or 'license' for more information
    IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.

    In [1]: import libagfs

    In [2]: x = libagfs.agfs()

    ***************************************
    AutoGadgetFS: USB testing made easy
    ***************************************
    Enter IP address of the rabbitmq server: 127.0.0.1
  
    In [3]: exit

    sudo `python3` agfsconsole.py
    
    ***************************************
    AutoGadgetFS: USB testing made easy
    ***************************************
    Enter IP address of the rabbitmq server: 127.0.0.1
    Give your project a name?!:
    ```   ```

* Patch Pyusb langID ( Not needed unless you get pyusb errors for langID ):
  * Edit the file `/usr/local/lib/python3/dist-packages/usb/util.py`
    * make changes to the `def get_string` method to look like below:

        ```python
        if 0 == len(langids):
            return "Error Reading langID"
            #raise ValueError("The device has no langid")
        if langid is None:
            langid = langids[0]
        elif langid not in langids:
            return "Error Reading langID"
            #raise ValueError("The device does not support the specified langid")
        ```

    * If you prefer to use `patch` apply the following patch to the file: `AutoGadgetFS/pyusb_patches/pyusb_langid.patch`

---

<a name="Rasp"/>

### Raspberry Pi Zero W:

* Obtain a copy of [Raspian Lite Edition](https://downloads.raspberrypi.org/raspios_lite_armhf_latest)
  * Burn the Image to the SD card using [BalenaEtcher](https://www.balena.io/etcher/)

* Mount the SD card on your machine and make the following changes:
  * In the `/path/to/sdcard/boot/config.txt` file add to the very end of the file:

    ```bash
    enable_uart=1
    dtoverlay=dwc2
    ```

  * In the `/path/to/sdcard/boot/cmdline.txt` add right after `rootwait`

    ```bash
    modules-load=dwc2
    ```

  * it should look like this make sure its on the same line:

    ```bash
    console=serial0,115200 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2
    ```

* Enable ssh:
  * in the `/path/to/sdcard/boot` directory create an empty file name ssh:

    ```bash
    sudo touch /path/to/sdcard/boot/ssh
    ```

* Enable Wifi:
  * in the `/path/to/sdcard/boot` directory create an file named `wpa_supplicant.conf`:

    ```bash
    sudo vim /path/to/sdcard/boot/wpa_supplicant.conf
    ```

  * Add the following contents:

    ```bash
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=US
    network={
                ssid="<your wifi SSID>"
                psk="<your wifi password>"
                key_mgmt=WPA-PSK
             }
    ```

* Unmount the SD card and place it back into the Raspberry Pi Zero and power it on.
* Copy the content of `AutogadgetFS/Pizero/` to the Pi zero: `username: pi` & `password: raspberry`

    ```bash
    cd AutogadgetFS/Pizero/
    scp gadgetfuzzer.py removegadget.sh requirements.txt router.py pi@<pi-ipaddress>:/home/pi
    ```

* SSH into the PI Zero and setup requirements for AutoGadgetFS:

    ```bash
    ssh pi@<pi-ip-address>
    chmod +x removegadget.sh
    sudo apt update
    sudo apt install python3 python3-pip
    sudo -H pip3 install -r requirements.txt
    ```
* Upgrading the latest kernel and adding modules (* This step is optional for the current release):
    ( This will take a very long time compiling on the Pi Zero, unless you choose to cross compile the kernel see [Compiling options](https://www.raspberrypi.org/documentation/linux/kernel/building.md))

    ```bash
    sudo bash
    apt install git bc bison flex libssl-dev make libncurses5-dev screen
    screen
    mkdir Downloads
    cd Downloads/
    git clone --depth=1 https://github.com/raspberrypi/linux
    cd linux/
    make bcmrpi_defconfig
    make menuconfig
    ```

    * Enable the Modules and save the config:

    <div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/allgadgets.png"/></div>
    <div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/allgadgets2.png"/></div>
    <div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/allgadgets3.png"/></div>
    <div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/allgadgets4.png"/></div>

    * Build and use the kernel:

    ```bash
    make zImage modules dtbs
    make modules_install
    cp arch/arm/boot/dts/*.dtb /boot/
    cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
    cp arch/arm/boot/dts/overlays/README /boot/overlays/
    cp arch/arm/boot/zImage /boot/kernel.img
    reboot
    ```


#### And you're done!

---

<a name="Tutorial"/>

### AutoGadgetFS tutorial:

[Click to visit the tutorial](https://docs.agfs.io/)

---

<a name="Screens"/>

### Screenshots:

##### Man in the Middle:

<div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/mitm.png" /></div>

#### USB device fuzzing: 

<div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/devfuzzer.png" /></div>

#### Host side fuzzing with code covereage:

<div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/codecov.png" /></div>

#### Fuzzer based on a selection of bytes:

<div style="text-align:center"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/selectivefuzz.png" /></div>

#### Smart fuzzer based on learning traffic:

```python
In [44]: x.devSmartFuzz(engine="smart",samples=5,filename="/home/raindrop/PycharmProjects/AutoGadgetFs/binariesdb/Nud-Nuvoton-1046-20764-1590421333.5169587-Nuvoton-1046-20764-1590421600.8067
    ...: 274-device.bin")                                                                                                                                                                     


[+]Allgemeine Statistiken
Vollständiger Zeichensatz               : !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Verworfener Zeichensatz                 : !"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ghijklmnopqrstuvwxyz{|}~
Endgültiger Zeichensatz                 : 0123456789abcdef
Wortlänge                               : 128
Verwendung von Kleinbuchstaben-Index    : 92%
Positionen der Kleinbuchstaben-Index    : [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 121, 122, 124, 125, 127]
Verwendung von Großbuchstaben-Index     : 0%
Positionen der Großbuchstaben-Index     : []
Verwendung von Ziffern-Index            : 96%
Positionen der Ziffern-Index            : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 123, 126]
Verwendung von Nicht-Alphanumerischen Index : 0%
Positionen der Nicht-Alphanumerischen Index : []
Zählerstatistiken                   : Großbuchstaben: 0 , Kleinbuchstaben: 133071, Ziffern:212017 , Nicht-Alphanumerisch:0
Alle Zeichenhäufigkeiten            : 
Zeichen:5 gefunden:5012 mal
Zeichen:2 gefunden:22563 mal
Zeichen:3 gefunden:12197 mal
Zeichen:8 gefunden:15008 mal
Zeichen:4 gefunden:13275 mal
Zeichen:0 gefunden:98056 mal
Zeichen:1 gefunden:17861 mal
Zeichen:f gefunden:87823 mal
Zeichen:d gefunden:7221 mal
Zeichen:7 gefunden:9614 mal
Zeichen:a gefunden:11148 mal
Zeichen:6 gefunden:10472 mal
Zeichen:b gefunden:8189 mal
Zeichen:9 gefunden:7959 mal
Zeichen:c gefunden:9172 mal
Zeichen:e gefunden:9518 mal
***********************
generiert:5 Pakete
***********************
Out[44]: 
['5608305852bf2ffd61770e2c827542f20be0b0fcba09db916bd07e1734b04cb0352b1d278068064d19f033bfad6fa90e53d865693fd4fee0214f00000eb0aa2c',
 '3b083595f276e2f1353a535c32f0f59516fc9328f7673bb80262c4da11c93683afe6dcff8a7a83018d78f41498a0da4d141ebd39c361b1724f2b00000eb0aa2c',
 '0120961963495c4dab9470738b497eddde07b0d70b357795ad9554d7964761969a6d997205e17eada6fa84eb33dcfb11412f75e04c195001283900000eb0aa2c',
 '091065d52127bbc6e840e02f8e1316f1c4d9c92a23931c00cdbb8c158368852ef8fabd461b98812b51ec84e1ccc5c04aaa366fbafabec623bd3500000eb0aa2c',
 '7300cc61151b7af27a578e766f49bebb2de68c48b37a00df1030ae464f456928eedd035303e697208bf58217af728a2a346fda5c8aef0335b82e00000eb0aa2c'

In [46]: https://raw.githubusercontent.com/ehabhussein/autogadgetfs/HEAD/x.edap.packets                                                                                                                                                                       
Out[46]: 
['5608305852bf2ffd61770e2c827542f20be0b0fcba09db916bd07e1734b04cb0352b1d278068064d19f033bfad6fa90e53d865693fd4fee0214f00000eb0aa2c',
 '3b083595f276e2f1353a535c32f0f59516fc9328f7673bb80262c4da11c93683afe6dcff8a7a83018d78f41498a0da4d141ebd39c361b1724f2b00000eb0aa2c',
 '0120961963495c4dab9470738b497eddde07b0d70b357795ad9554d7964761969a6d997205e17eada6fa84eb33dcfb11412f75e04c195001283900000eb0aa2c',
 '091065d52127bbc6e840e02f8e1316f1c4d9c92a23931c00cdbb8c158368852ef8fabd461b98812b51ec84e1ccc5c04aaa366fbafabec623bd3500000eb0aa2c',
 '7300cc61151b7af27a578e766f49bebb2de68c48b37a00df1030ae464f456928eedd035303e697208bf58217af728a2a346fda5c8aef0335b82e00000eb0aa2c']```

#### Help method:

```python3
In [15]: x.help("")                                                                                                                                               

Derzeit unterstützte Methoden:
__________________________________________________________________________________________________________________________________________________________________
Methode                ||-->Beschreibung
----------------------------------------------------------------------------------------------------------------------------
MITMproxy            ||-->Diese Methode stellt eine Verbindung zum RabbitMQ her und hört auf empfangene Nachrichten in der todev-Warteschlange
____________________________________________________________________________________________________________________________
MITMproxyRQueues     ||-->Diese Methode liest aus der Warteschlange todev und sendet die Anfrage an das Gerät selbst.
____________________________________________________________________________________________________________________________
SmartFuzz            ||-->Diese Methode generiert Pakete basierend auf dem, was sie durch einen Sniff vom Host oder vom Gerät gelernt hat
____________________________________________________________________________________________________________________________
chgIntrfs            ||-->Diese Methode ermöglicht es Ihnen, eine andere Schnittstelle zu ändern und auszuwählen
____________________________________________________________________________________________________________________________
clearqueues          ||-->Diese Methode leert alle Warteschlangen auf den RabbitMQ-Warteschlangen, die eingerichtet sind
____________________________________________________________________________________________________________________________
clonedev             ||-->Diese Methode benötigt keine Parameter; sie speichert nur ein Backup des Geräts, falls Sie es später teilen oder verwenden müssen.
____________________________________________________________________________________________________________________________
createctrltrsnfDB    ||-->Erstellt eine SQLite-Datenbank mit Werten, die aus der Steuerungsübertragungs-Enumeration ermittelt wurden
____________________________________________________________________________________________________________________________
createdb             ||-->Erstellt die SQLite-Tabelle und Spalten aus USBlyzer-Aufnahmen
____________________________________________________________________________________________________________________________
decodePacketAscii    ||-->Diese Methode dekodiert Paketbytes zurück in ASCII
____________________________________________________________________________________________________________________________
describeFuzz         ||-->Diese Methode ermöglicht es Ihnen, ein Paket zu beschreiben und auszuwählen, welche Bytes gefuzzt werden
____________________________________________________________________________________________________________________________
devEnumCtrltrnsf     ||-->Diese Methode ermittelt alle möglichen Kombinationen einer Steuerungsübertragungsanforderung
____________________________________________________________________________________________________________________________
devReset             ||-->Diese Methode setzt das Gerät zurück
____________________________________________________________________________________________________________________________
devWrite             ||-->Um dies mit einer Methode zu verwenden, schreiben Sie in ein Gerät. Stellen Sie sicher, dass Sie startSniffReadThread(self,endpoint=None, pts=None, queue=None,channel=None) ausführen.
____________________________________________________________________________________________________________________________
devctrltrnsf         ||-->Diese Methode ermöglicht es Ihnen, Steuerübertragungsanforderungen an das Zielgerät zu senden
____________________________________________________________________________________________________________________________
deviceInfo           ||-->Holt die vollständigen Informationen nur für jedes an den Host angeschlossene USB-Gerät
____________________________________________________________________________________________________________________________
deviceInterfaces     ||-->Holt alle Schnittstellen und Endpunkte auf dem Gerät
____________________________________________________________________________________________________________________________
devrandfuzz          ||-->Diese Methode ermöglicht es Ihnen, Pakete fester oder zufälliger Größe zu erstellen, die mit urandom erstellt wurden
____________________________________________________________________________________________________________________________
devseqfuzz           ||-->Diese Methode ermöglicht es Ihnen, sequenziell inkrementierte Pakete zu erstellen und an das Gerät zu senden
____________________________________________________________________________________________________________________________
findSelect           ||-->Diese Methode zählt alle angeschlossenen USB-Geräte auf und ermöglicht es Ihnen, ein Gerät sowie seine Endpunkte als Ziel auszuwählen
____________________________________________________________________________________________________________________________
help                 ||-->AutogadgetFS-Hilfemethode
____________________________________________________________________________________________________________________________
hostwrite            ||-->Diese Methode schreibt Pakete an den Host, entweder für eine Software oder einen Treiber, der das Gerät steuert
____________________________________________________________________________________________________________________________
hstrandfuzz          ||-->Diese Methode ermöglicht es Ihnen, Pakete fester oder zufälliger Größe zu erstellen, die mit urandom erstellt wurden, und sie an die Host-Warteschlange zu senden
____________________________________________________________________________________________________________________________
monInterfaceChng     ||-->Methode zur Überwachung von Schnittstellenänderungen, wird von def startMonInterfaceChng(self) aufgerufen
____________________________________________________________________________________________________________________________
newProject           ||-->Erstellt einen neuen Projektnamen, falls Sie etwas anderes testen
____________________________________________________________________________________________________________________________
releasedev           ||-->Gibt das Gerät frei und setzt den Kernel-Treiber wieder ein
____________________________________________________________________________________________________________________________
removeGadget         ||-->Diese Methode entfernt das Gadget vom RaspberryPi
____________________________________________________________________________________________________________________________
replaymsgs           ||-->Diese Methode durchsucht die USBLyzer-parsierte Datenbank und gibt Ihnen die Option, eine Nachricht oder alle Nachrichten vom Host zum Gerät wiederzugeben
____________________________________________________________________________________________________________________________
searchmsgs           ||-->Diese Methode ermöglicht es Ihnen, alle Nachrichten nach einem Muster zu durchsuchen und auszuwählen, die aus einer USBlyzer-Datenbankerstellung gespeichert wurden
____________________________________________________________________________________________________________________________
setupGadgetFS        ||-->Variablen für gadgetFS einrichten: Nur Linux, auf Raspberry Pi Zero die beste Option
____________________________________________________________________________________________________________________________
showMessage          ||-->Zeigt Nachrichten an, falls Fehler oder Warnung oder Info
____________________________________________________________________________________________________________________________
sniffdevice          ||-->Liest die Kommunikation zwischen dem Gerät und dem Host aus
____________________________________________________________________________________________________________________________
startMITMusbWifi     ||-->Startet einen Thread zur Überwachung des USB-Zielgeräts
____________________________________________________________________________________________________________________________
startMonInterfaceChng||-->Diese Methode ermöglicht es Ihnen, ein Gerät alle 10 Sekunden zu überwachen, falls es plötzlich seine Schnittstellenkonfiguration ändert.
____________________________________________________________________________________________________________________________
startQueuewrite      ||-->Initiiert eine Verbindung zur Warteschlange zur Kommunikation mit dem Host
____________________________________________________________________________________________________________________________
startSniffReadThread ||-->Dies ist ein Thread, der kontinuierlich die Antworten vom Gerät liest, abhängig davon, was Sie an die Methode übergeben (entweder pts oder queue)
____________________________________________________________________________________________________________________________
stopMITMusbWifi      ||-->Stoppt den Man-in-the-Middle-Thread zwischen Host und Gerät
____________________________________________________________________________________________________________________________
stopMonInterfaceChang||-->Stoppt den Thread zur Schnittstellenüberwachung
____________________________________________________________________________________________________________________________
stopQueuewrite       ||-->Stoppt den Thread, der für die Kommunikation mit dem Host-Rechner zuständig ist
____________________________________________________________________________________________________________________________
stopSniffing         ||-->Beendet den Sniffing-Thread, der von startSniffReadThread() gestartet wurde
____________________________________________________________________________________________________________________________
usblyzerparse        ||-->Diese Methode parst Ihr aus USBlyzer exportiertes XML und importiert es dann in eine Datenbank
____________________________________________________________________________________________________________________________

In [16]: x.help("findSelect")                                                                                                                                                                 
****
[+]Hilfe für die Methode findSelect:
[-]Signatur: findSelect(self, chgint=None)


[+]Hilfe zu findSelect:
Diese Methode zählt alle angeschlossenen USB-Geräte auf und ermöglicht es Ihnen, ein Gerät sowie seine Endpunkte als Ziel auszuwählen
****```

---

#### AutoGadgetFS console. A much simpler way to use AGFS:

<div style="text-align:left"><img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/agfsconsole.png"/></div>


---

<a name="Youtube"/>

### Youtube Playlist:

[Youtube Playlist](https://www.youtube.com/playlist?list=PLKozlVgM6RQjNHmpWR2RBiFCtufV03o6Z)

---

<a name="Slack"/>

### Join Slack:

Visit [AutogadgetFS Slack Channel](https://join.slack.com/t/autogadgetfs/shared_invite/zt-emgcv3ol-unG_axHmSQlk~5GcBddhlQ)

---

<a name="Support"/>

### Supported by:

<img src="https://assets.kitploit.com/production/public/readmes/3835/31aa30e1b311728af097fe24cefc4db7272ad971ffe64bac8d4d4e36a542fc9e.jpg" width="166" height="166"> <img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/JetBrains.png" width="166" height="166">  <img src="https://raw.githubusercontent.com/ehabhussein/AutoGadgetFS/master/screenshots/pyusb.png" width="166" height="166"> 

---

<a name="Donate"/>

### Buy me a coffee to support the development of this project

## Ethereum Donations : 0xA919e40ddB0563918dDc174320D91992e0048477

---
<a name="Contact"/>

### Contact me:

### 📧: <[email protected]>

### 🐦 : <https://twitter.com/0xRaindrop>

---

<a name="Cont"/>

### Contribute:

We're looking for developers to make this tool great! send me an 📧: <[email protected]> if you feel you'd like to be a part of this.
Tool herunterladen