Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
AutoGadgetFS — Testes USB simplificados | Kitploit
Ferramentas/GitHubGitHub/ehabhussein/autogadgetfs
FuzzingHacking de HardwareTestes de Penetração
GitHubehabhussein/autogadgetfs

AutoGadgetFS

Testes USB simplificados

Ver RepositórioSite
123237há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Doações Ethereum : 0xA919e40ddB0563918dDc174320D91992e0048477

Tabela de Conteúdos

  1. O que é AutoGadgetFS?

  2. Requisitos

  3. A Configuração

    a. Apenas teste de dispositivo

    b. Configuração mínima de agfs no meio

    c. Configuração completa de agfs no meio com suporte a depuração

  4. Suporte a classes de dispositivos USB

  5. Capacidades

  6. Roteiro

  7. Instalação

    a. Linux

    b. Raspberry Pi Zero com WIFI

  8. Tutorial do AutogadgetFS

  9. Capturas de tela

  10. Playlist do Youtube

  11. Slack

  12. Suportado por

  13. Compre-me um café ☕️

  14. Contate-me

  15. Quer contribuir?


O que é AutoGadgetFS?

AutoGadgetFS é um framework de código aberto que permite aos usuários avaliar dispositivos USB e seus hosts/drivers/software associados sem um conhecimento aprofundado do protocolo USB. A ferramenta é escrita em Python3 e utiliza RabbitMQ e acesso WiFi para permitir que pesquisadores realizem avaliações remotas de segurança USB de qualquer lugar do mundo. Ao aproveitar o ConfigFS, o AutoGadgetFS permite que os usuários clonem e emulem dispositivos rapidamente, eliminando a necessidade de se aprofundar nos detalhes de cada implementação. O framework também permite que os usuários criem seus próprios fuzzers sobre ele.


Requisitos:

  • 💻 Máquina host executando Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero com suporte WIFI
  • 🎯 Opções de máquina alvo:
    • Máquina Virtual
    • Máquina autônoma
  • 🔌 2 cabos USB micro
  • 🔱 Dispositivo USB alvo
  • 🐞 Depurador de hardware (Opcional)

A Configuração:

```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"/>

### Suporte para classes de dispositivos USB:

[✔️] Dispositivos USB HID totalmente suportados (Homem no meio)

[⚠️] Teste apenas de dispositivo .. Todos os dispositivos USB (SEM Homem no meio)

[⏳] Futuros lançamentos... Todos os dispositivos USB (Homem no meio)

---

<a name="Caps"/>

### Capacidades:

1. Encontre, Selecione e Anexe a um dispositivo USB com facilidade.
1. Emule qualquer dispositivo USB HID.
1. Realize a captura AGFS no meio para dispositivos HID (salve a comunicação em disco).
1. Captura de dispositivo (Qualquer dispositivo).
1. Vários Fuzzers permitem que você faça Fuzz em um dispositivo ou host.
1. Fuzzers aleatórios (com pacotes de comprimento fixo ou aleatório).
1. Fuzzers inteligentes que aprendem com comunicações USB anteriores.
1. Fuzzer Descritivo para dizer ao Fuzzer quais bytes fuzzificar, deixando o restante do pacote inalterado.
1. Gadget Fuzzer.
1. Fuzzer Sequencial.
1. Enumerador de transferência de controle.
1. Reprodução de pacotes a partir de um arquivo.
1. Reprodução de pacotes a partir de uma captura USBLyzer salva.
1. Forma visual de apresentar pacotes para facilitar a engenharia reversa da comunicação.
1. Alertas para dispositivo em modo DFU, ou se o dispositivo vazar informações.
1. Dispositivo USB e host podem estar em qualquer lugar na internet.
1. Monitorar mudanças repentinas de interface.

---

<a name="Road"/>

### Roteiro:

1. Capturar requisições de transferência de controle para um dispositivo e responder a elas.
1. MITM e emular todos os tipos de dispositivos.
1. Interface baseada em Console/QT.
1. Mais suporte a Interfaces/endpoints no RPI zero W.
1. Suporte a mais placas como a greatfet.
1. Migrar para uma placa personalizada.
1. Trabalhar para que o raspberry pi tenha suporte completo para emulação de dispositivos USB com todas as interfaces.
1. correlacionar pacotes enviados e recebidos via números de sequência.

---

<a name="Installation"/>

### Instalação:

<a name="Linux"/>

### Máquina Linux:

* Nota: WSL/WSL2 não é suportado devido a problemas com passagem de USB.

* Instale Python3, ipython3, git, pip e servidor rabbitMQ

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

* Clone o repositório

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

* Instale os requisitos

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

* Faça o downgrade do prompt toolkit para melhor experiência no ipython:

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

* Habilite a interface web para rabbitMQ

    ```bash
    sudo rabbitmq-plugins enable rabbitmq_management
    http://localhost:15672/ to reach the web interface
    ```

* Faça login na interface web com as credenciais *guest:guest*
  * NOTA: se você não estiver instalando rabbitMQ no `localhost` adicione o seguinte usuário e faça login com ele:
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Faça upload do arquivo de configuração do rabbitMQ
    * Na aba de visão geral, role até o final para importar definições
    * Faça upload do arquivo encontrado em: *rabbitMQbrokerconfig/rabbitmq-Config.json*

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

* Teste a instalação

    ```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")                                                                                                                                                                     


[+]Estatísticas Gerais
Charset completo                : !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Charset descartado           : !"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ghijklmnopqrstuvwxyz{|}~
Charset final               : 0123456789abcdef
Comprimento da palavra                 : 128
Uso de índice minúsculo      : 92%
Localizações de índice minúsculo  : [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]
Uso de índice maiúsculo      : 0%
Localizações de índice maiúsculo  : []
Uso de índice de dígitos           : 96%
Localizações de índice de dígitos       : [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]
Uso de índice não alfanumérico           : 0%
Localizações de índice não alfanumérico       : []
Estatísticas de contagem          : Uppercase: 0 , Lowercase: 133071, Digits:212017 , NonAlphaNumeric:0
Frequências de todos os caracteres        : 
caractere:5 encontrado:5012 vezes
caractere:2 encontrado:22563 vezes
caractere:3 encontrado:12197 vezes
caractere:8 encontrado:15008 vezes
caractere:4 encontrado:13275 vezes
caractere:0 encontrado:98056 vezes
caractere:1 encontrado:17861 vezes
caractere:f encontrado:87823 vezes
caractere:d encontrado:7221 vezes
caractere:7 encontrado:9614 vezes
caractere:a encontrado:11148 vezes
caractere:6 encontrado:10472 vezes
caractere:b encontrado:8189 vezes
caractere:9 encontrado:7959 vezes
caractere:c encontrado:9172 vezes
caractere:e encontrado:9518 vezes
***********************
gerado:5 Pacotes
***********************
Out[44]: 
['5608305852bf2ffd61770e2c827542f20be0b0fcba09db916bd07e1734b04cb0352b1d278068064d19f033bfad6fa90e53d865693fd4fee0214f00000eb0aa2c',
 '3b083595f276e2f1353a535c32f0f59516fc9328f7673bb80262c4da11c93683afe6dcff8a7a83018d78f41498a0da4d141ebd39c361b1724f2b00000eb0aa2c',
 '0120961963495c4dab9470738b497eddde07b0d70b357795ad9554d7964761969a6d997205e17eada6fa84eb33dcfb11412f75e04c195001283900000eb0aa2c',
 '091065d52127bbc6e840e02f8e1316f1c4d9c92a23931c00cdbb8c158368852ef8fabd461b98812b51ec84e1ccc5c04aaa366fbafabec623bd3500000eb0aa2c',
 '7300cc61151b7af27a578e766f49bebb2de68c48b37a00df1030ae464f456928eedd035303e697208bf58217af728a2a346fda5c8aef0335b82e00000eb0aa2c'

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

#### Help method:

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

Métodos atualmente suportados:
__________________________________________________________________________________________________________________________________________________________________
Método               ||-->Descrição
----------------------------------------------------------------------------------------------------------------------------
MITMproxy            ||-->Este método cria uma conexão ao RabbitMQ e escuta mensagens recebidas na fila todev
____________________________________________________________________________________________________________________________
MITMproxyRQueues     ||-->Este método lê da fila todev e envia a requisição para o próprio dispositivo.
____________________________________________________________________________________________________________________________
SmartFuzz            ||-->Este método gera pacotes com base no que aprendeu de uma captura do anfitrião ou do dispositivo
____________________________________________________________________________________________________________________________
chgIntrfs            ||-->Este método permite alterar e selecionar outra interface
____________________________________________________________________________________________________________________________
clearqueues          ||-->Este método limpa todas as filas nas filas do RabbitMQ que estão configuradas
____________________________________________________________________________________________________________________________
clonedev             ||-->Este método não precisa de parâmetros, apenas salva um backup do dispositivo caso precise compartilhá-lo ou usá-lo depois.
____________________________________________________________________________________________________________________________
createctrltrsnfDB    ||-->cria uma base de dados SQLite contendo valores que foram enumerados a partir da enumeração de transferência de controlo
____________________________________________________________________________________________________________________________
createdb             ||-->cria a tabela sqlite e colunas a partir de capturas do usblyzer
____________________________________________________________________________________________________________________________
decodePacketAscii    ||-->Este método descodifica bytes de pacotes de volta para Ascii
____________________________________________________________________________________________________________________________
describeFuzz         ||-->Este método permite descrever um pacote e selecionar quais bytes serão fuzzeados
____________________________________________________________________________________________________________________________
devEnumCtrltrnsf     ||-->Este método enumera todas as combinações possíveis de uma requisição de transferência de controlo
____________________________________________________________________________________________________________________________
devReset             ||-->Este método reinicia o dispositivo
____________________________________________________________________________________________________________________________
devWrite             ||-->Para usar isto com um método, escreveria para um dispositivo. Certifique-se de executar o startSniffReadThread(self,endpoint=None, pts=None, queue=None,channel=None)
____________________________________________________________________________________________________________________________
devctrltrnsf         ||-->Este método permite enviar requisições de transferência de controlo para o dispositivo alvo
____________________________________________________________________________________________________________________________
deviceInfo           ||-->obtem a informação completa apenas para qualquer usb conectado ao anfitrião
____________________________________________________________________________________________________________________________
deviceInterfaces     ||-->obtem todas as interfaces e endpoints no dispositivo
____________________________________________________________________________________________________________________________
devrandfuzz          ||-->Este método permite criar pacotes de tamanho fixo ou aleatório criados usando urandom
____________________________________________________________________________________________________________________________
devseqfuzz           ||-->Este método permite criar pacotes incrementados sequencialmente e enviá-los para o dispositivo
____________________________________________________________________________________________________________________________
findSelect           ||-->Este método enumera todos os dispositivos USB conectados e permite selecioná-lo como um dispositivo alvo, bem como os seus endpoints
____________________________________________________________________________________________________________________________
help                 ||-->Método de ajuda do AutogadgetFS
____________________________________________________________________________________________________________________________
hostwrite            ||-->Este método escreve pacotes para o anfitrião, seja a atingir um software ou um driver no controlo do dispositivo
____________________________________________________________________________________________________________________________
hstrandfuzz          ||-->Este método permite criar pacotes de tamanho fixo ou aleatório criados usando urandom e enviá-los para a fila do anfitrião
____________________________________________________________________________________________________________________________
monInterfaceChng     ||-->Método responsável por monitorizar interfaces para alterações. Isto é chamado de def startMonInterfaceChng(self)
____________________________________________________________________________________________________________________________
newProject           ||-->cria um novo nome de projeto se estivesse a testar outra coisa
____________________________________________________________________________________________________________________________
releasedev           ||-->liberta o dispositivo e reanexa o driver do kernel
____________________________________________________________________________________________________________________________
removeGadget         ||-->Este método remove o gadget do raspberryPI
____________________________________________________________________________________________________________________________
replaymsgs           ||-->Este método pesquisa a base de dados analisada do USBLyzer e dá-lhe a opção de reproduzir uma mensagem ou todas as mensagens do anfitrião para o dispositivo
____________________________________________________________________________________________________________________________
searchmsgs           ||-->Este método permite pesquisar e selecionar todas as mensagens para um padrão que foram guardadas a partir de uma criação da base de dados do USBlyzer
____________________________________________________________________________________________________________________________
setupGadgetFS        ||-->configurar variáveis para gadgetFS : Apenas Linux, no Raspberry Pi Zero melhor opção
____________________________________________________________________________________________________________________________
showMessage          ||-->mostra mensagens se erro ou aviso ou info
____________________________________________________________________________________________________________________________
sniffdevice          ||-->lê a comunicação entre o dispositivo e os anfitriões
____________________________________________________________________________________________________________________________
startMITMusbWifi     ||-->Inicia uma thread para monitorizar o dispositivo USB alvo
____________________________________________________________________________________________________________________________
startMonInterfaceChng||-->Este método permite monitorizar um dispositivo a cada 10 segundos no caso de alterar subitamente a sua configuração de interface.
____________________________________________________________________________________________________________________________
startQueuewrite      ||-->inicia uma conexão à fila para comunicar com o anfitrião
____________________________________________________________________________________________________________________________
startSniffReadThread ||-->Esta é uma thread para ler continuamente as respostas do dispositivo e dependendo do que passar para o método, seja pts ou queue
____________________________________________________________________________________________________________________________
stopMITMusbWifi      ||-->Para a thread de homem-no-meio entre o anfitrião e o dispositivo
____________________________________________________________________________________________________________________________
stopMonInterfaceChang||-->Para a thread de monitorização de interface
____________________________________________________________________________________________________________________________
stopQueuewrite       ||-->para a thread responsável por comunicar com a máquina anfitriã
____________________________________________________________________________________________________________________________
stopSniffing         ||-->Mata a thread de captura iniciada por startSniffReadThread()
____________________________________________________________________________________________________________________________
usblyzerparse        ||-->Este método irá analisar o seu xml exportado do usblyzer e depois importá-los para uma base de dados
____________________________________________________________________________________________________________________________

In [16]: x.help("findSelect")                                                                                                                                                                 
****
[+]Ajuda para o método findSelect:
[-]Assinatura: findSelect(self, chgint=None)


[+]Ajuda do findSelect:
Este método enumera todos os dispositivos USB conectados e permite selecioná-lo como um dispositivo alvo, bem como os seus endpoints
****```

---

#### 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.
Baixar ferramenta