Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
AutoGadgetFS — Тестирование USB стало простым | Kitploit
Инструменты/GitHubGitHub/ehabhussein/autogadgetfs
ФаззингАппаратный ХакингТестирование на Проникновение
GitHubehabhussein/autogadgetfs

AutoGadgetFS

Тестирование USB стало простым

РепозиторийСайт
123235 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Пожертвования Ethereum : 0xA919e40ddB0563918dDc174320D91992e0048477

Содержание

  1. Что такое AutoGadgetFS ?

  2. Требования

  3. Настройка

    a. Только тестирование устройства

    b. Минимальная настройка agfs посередине

    c. Полная настройка agfs посередине с поддержкой отладки

  4. Поддержка классов USB-устройств

  5. Возможности

  6. План развития

  7. Установка

    a. Linux

    b. Raspberry Pi Zero с WIFI

  8. Руководство по AutoGadgetFS

  9. Скриншоты

  10. Плейлист на YouTube

  11. Slack

  12. Поддержка

  13. Купи мне кофе ☕️

  14. Связь со мной

  15. Хотите внести вклад ?


Что такое AutoGadgetFS ?

AutoGadgetFS — это фреймворк с открытым исходным кодом, который позволяет пользователям оценивать USB-устройства и связанные с ними хосты/драйверы/программное обеспечение без глубоких знаний протокола USB. Инструмент написан на Python3 и использует RabbitMQ и Wi-Fi доступ, чтобы исследователи могли проводить удаленные оценки безопасности USB из любой точки мира. Используя ConfigFS, AutoGadgetFS позволяет пользователям быстро клонировать и эмулировать устройства, устраняя необходимость углубляться в детали каждой реализации. Фреймворк также позволяет пользователям создавать собственные фуззеры на его основе.


Требования:

  • 💻 Хост-машина с Linux (Debian/Ubuntu/Kali)
  • 🥧 Raspberry Pi Zero с поддержкой WIFI
  • 🎯 Варианты целевой машины:
    • Виртуальная машина
    • Автономная машина
  • 🔌 2 кабеля USB micro
  • 🔱 Целевое USB-устройство
  • 🐞 Аппаратный отладчик (опционально)

Настройка:

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

### Поддержка классов USB-устройств:

[✔️] USB HID-устройства полностью поддерживаются (человек посередине)

[⚠️] Тестирование только устройства.. Все USB-устройства (без человека посередине)

[⏳] Будущие релизы... Все USB-устройства (человек посередине)

---

<a name="Caps"/>

### Возможности:

1. Легко находить, выбирать и подключаться к USB-устройству.
1. Эмулировать любое USB HID-устройство.
1. Выполнять AGFS с перехватом трафика для HID-устройств (сохранять обмен данными на диск).
1. Отслеживание устройств (любых устройств).
1. Несколько фаззеров позволяют фаззить устройство или хост.
1. Случайные фаззеры (с пакетами фиксированной или случайной длины).
1. Умные фаззеры, обучающиеся на предыдущих USB-коммуникациях.
1. Описательный фаззер, указывающий, какие байты фаззить, оставляя остальную часть пакета без изменений.
1. Фаззер гаджетов.
1. Последовательный фаззер.
1. Перечислитель управляющих передач.
1. Воспроизведение пакетов из файла.
1. Воспроизведение пакетов из сохранённого захвата USBLyzer.
1. Визуальное представление пакетов для упрощения обратного проектирования обмена данными.
1. Оповещения о режиме DFU устройства или утечке информации с устройства.
1. USB-устройство и хост могут находиться где угодно в интернете.
1. Мониторинг внезапных изменений интерфейсов.

---

<a name="Road"/>

### Дорожная карта:

1. Перехватывать запросы управляющих передач к устройству и отвечать на них.
1. MITM и эмуляция всех типов устройств.
1. Интерфейс на основе консоли/QT.
1. Поддержка большего количества интерфейсов/конечных точек на RPI zero W.
1. Поддержка большего количества плат, таких как greatfet.
1. Переход на собственную плату.
1. Доведение Raspberry Pi до полной поддержки эмуляции USB-устройств со всеми интерфейсами.
1. Связывание отправленных и полученных пакетов по порядковым номерам.

---

<a name="Installation"/>

### Установка:

<a name="Linux"/>

### На Linux-машине:

* Примечание: WSL/WSL2 не поддерживается из-за проблем с пробросом USB.

* Установите Python3, ipython3, git, pip и сервер rabbitMQ

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

* Клонируйте репозиторий

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

* Установите зависимости

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

* Понизьте версию prompt toolkit для лучшего опыта работы с ipython:

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

* Включите веб-интерфейс для rabbitMQ

    ```bash
    sudo rabbitmq-plugins enable rabbitmq_management
    http://localhost:15672/ для доступа к веб-интерфейсу
    ```

* Войдите в веб-интерфейс с учётными данными *guest:guest*
  * ПРИМЕЧАНИЕ: если вы устанавливаете rabbitMQ не на `localhost`, добавьте следующего пользователя и входите с ним:
    ```bash
    sudo rabbitmqctl add_user autogfs usb4ever
    sudo rabbitmqctl set_user_tags autogfs administrator
    ```
  * Загрузите файл конфигурации rabbitMQ
    * На вкладке overview прокрутите вниз до "import definitions"
    * Загрузите файл, расположенный в: *rabbitMQbrokerconfig/rabbitmq-Config.json*

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

* Проверьте установку

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


[+]Общая статистика
Полный набор символов        : !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Отброшенный набор символов   : !"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ghijklmnopqrstuvwxyz{|}~
Итоговый набор символов      : 0123456789abcdef
Длина слова                  : 128
Использование строчных индексов: 92%
Расположение строчных индексов: [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]
Использование прописных индексов: 0%
Расположение прописных индексов: []
Использование цифровых индексов: 96%
Расположение цифровых индексов: [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]
Использование небуквенно-цифровых индексов: 0%
Расположение небуквенно-цифровых индексов: []
Статистика счётчиков          : Прописные: 0 , Строчные: 133071, Цифры:212017 , Небуквенно-цифровые:0
Частоты всех символов         : 
символ:5 найдено:5012 раз
символ:2 найдено:22563 раз
символ:3 найдено:12197 раз
символ:8 найдено:15008 раз
символ:4 найдено:13275 раз
символ:0 найдено:98056 раз
символ:1 найдено:17861 раз
символ:f найдено:87823 раз
символ:d найдено:7221 раз
символ:7 найдено:9614 раз
символ:a найдено:11148 раз
символ:6 найдено:10472 раз
символ:b найдено:8189 раз
символ:9 найдено:7959 раз
символ:c найдено:9172 раз
символ:e найдено:9518 раз
***********************
сгенерировано:5 Пакетов
***********************
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("")                                                                                                                                               

Currently supported methods:
__________________________________________________________________________________________________________________________________________________________________
Method               ||-->Description
----------------------------------------------------------------------------------------------------------------------------
MITMproxy            ||-->Этот метод создаёт соединение с RabbitMQ и прослушивает полученные сообщения в очереди todev
____________________________________________________________________________________________________________________________
MITMproxyRQueues     ||-->Этот метод читает из очереди todev и отправляет запрос непосредственно самому устройству.
____________________________________________________________________________________________________________________________
SmartFuzz            ||-->Этот метод генерирует пакеты на основе того, что он узнал из перехвата данных от хоста или устройства
____________________________________________________________________________________________________________________________
chgIntrfs            ||-->Этот метод позволяет изменить и выбрать другой интерфейс
____________________________________________________________________________________________________________________________
clearqueues          ||-->этот метод очищает все очереди RabbitMQ, которые были настроены
____________________________________________________________________________________________________________________________
clonedev             ||-->Этот метод не требует параметров, он только сохраняет резервную копию устройства на случай, если потребуется поделиться ей или использовать позже.
____________________________________________________________________________________________________________________________
createctrltrsnfDB    ||-->создаёт базу данных SQLite, содержащую значения, полученные при переборе управляющих передач
____________________________________________________________________________________________________________________________
createdb             ||-->создаёт таблицу и столбцы SQLite на основе захватов USBlyzer
____________________________________________________________________________________________________________________________
decodePacketAscii    ||-->Этот метод декодирует байты пакета обратно в ASCII
____________________________________________________________________________________________________________________________
describeFuzz         ||-->Этот метод позволяет описать пакет и выбрать, какие байты будут фаззиться
____________________________________________________________________________________________________________________________
devEnumCtrltrnsf     ||-->Этот метод перечисляет все возможные комбинации запроса управляющей передачи
____________________________________________________________________________________________________________________________
devReset             ||-->Этот метод сбрасывает устройство
____________________________________________________________________________________________________________________________
devWrite             ||-->Чтобы использовать это совместно с методом записи на устройство, убедитесь, что запустили startSniffReadThread(self,endpoint=None, pts=None, queue=None,channel=None)
____________________________________________________________________________________________________________________________
devctrltrnsf         ||-->Этот метод позволяет отправлять запросы управляющей передачи на целевое устройство
____________________________________________________________________________________________________________________________
deviceInfo           ||-->получает полную информацию для любого USB-устройства, подключённого к хосту
____________________________________________________________________________________________________________________________
deviceInterfaces     ||-->получает все интерфейсы и конечные точки на устройстве
____________________________________________________________________________________________________________________________
devrandfuzz          ||-->этот метод позволяет создавать пакеты фиксированного или случайного размера, созданные с помощью urandom
____________________________________________________________________________________________________________________________
devseqfuzz           ||-->Этот метод позволяет создавать последовательно увеличивающиеся пакеты и отправлять их на устройство
____________________________________________________________________________________________________________________________
findSelect           ||-->Этот метод перечисляет все подключённые USB-устройства и позволяет выбрать его в качестве целевого устройства, а также его конечные точки
____________________________________________________________________________________________________________________________
help                 ||-->Метод справки AutogadgetFS
____________________________________________________________________________________________________________________________
hostwrite            ||-->Этот метод записывает пакеты на хост, направленные на программное обеспечение или драйвер, управляющий устройством
____________________________________________________________________________________________________________________________
hstrandfuzz          ||-->этот метод позволяет создавать пакеты фиксированного или случайного размера, созданные с помощью urandom, и отправлять их в очередь хоста
____________________________________________________________________________________________________________________________
monInterfaceChng     ||-->Метод, отвечающий за мониторинг изменений интерфейсов; вызывается из def startMonInterfaceChng(self)
____________________________________________________________________________________________________________________________
newProject           ||-->создаёт новое имя проекта, если вы тестировали что-то другое
____________________________________________________________________________________________________________________________
releasedev           ||-->освобождает устройство и повторно подключает драйвер ядра
____________________________________________________________________________________________________________________________
removeGadget         ||-->Этот метод удаляет гаджет из Raspberry Pi
____________________________________________________________________________________________________________________________
replaymsgs           ||-->Этот метод ищет в разобранной базе данных USBLyzer и даёт возможность воспроизвести сообщение или все сообщения от хоста к устройству
____________________________________________________________________________________________________________________________
searchmsgs           ||-->Этот метод позволяет искать и выбирать все сообщения по шаблону, которые были сохранены при создании базы данных USBlyzer
____________________________________________________________________________________________________________________________
setupGadgetFS        ||-->настройка переменных для gadgetFS: только Linux, на Raspberry Pi Zero — лучший вариант
____________________________________________________________________________________________________________________________
showMessage          ||-->показывает сообщения, если ошибка, предупреждение или информация
____________________________________________________________________________________________________________________________
sniffdevice          ||-->читать обмен данными между устройством и хостами
____________________________________________________________________________________________________________________________
startMITMusbWifi     ||-->Запускает поток для мониторинга целевого USB-устройства
____________________________________________________________________________________________________________________________
startMonInterfaceChng||-->Этот метод позволяет отслеживать устройство каждые 10 секунд на случай внезапного изменения его конфигурации интерфейсов.
____________________________________________________________________________________________________________________________
startQueuewrite      ||-->устанавливает соединение с очередью для взаимодействия с хостом
____________________________________________________________________________________________________________________________
startSniffReadThread ||-->Это поток для непрерывного чтения ответов от устройства; зависит от того, что вы передаёте методу: pts или queue
____________________________________________________________________________________________________________________________
stopMITMusbWifi      ||-->Останавливает поток «человек посередине» между хостом и устройством
____________________________________________________________________________________________________________________________
stopMonInterfaceChang||-->Останавливает поток мониторинга интерфейсов
____________________________________________________________________________________________________________________________
stopQueuewrite       ||-->останавливает поток, отвечающий за связь с хост-машиной
____________________________________________________________________________________________________________________________
stopSniffing         ||-->Завершает поток перехвата, запущенный startSniffReadThread()
____________________________________________________________________________________________________________________________
usblyzerparse        ||-->Этот метод разбирает ваш XML-файл, экспортированный из USBlyzer, и импортирует данные в базу данных
____________________________________________________________________________________________________________________________

In [16]: x.help("findSelect")                                                                                                                                                                 
****
[+]Справка для метода findSelect:
[-]Signature: findSelect(self, chgint=None)


[+]findSelect: Справка
Этот метод перечисляет все подключённые USB-устройства и позволяет выбрать его в качестве целевого устройства, а также его конечные точки
****```

---

#### 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.
Скачать инструмент