
USB परीक्षण आसान बनाया गया

AutoGadgetFS एक ओपन-सोर्स फ्रेमवर्क है जो उपयोगकर्ताओं को USB प्रोटोकॉल की गहन जानकारी के बिना USB उपकरणों और उनसे जुड़े होस्ट/ड्राइवर/सॉफ्टवेयर का मूल्यांकन करने की अनुमति देता है। यह टूल Python3 में लिखा गया है और शोधकर्ताओं को दुनिया में कहीं से भी दूरस्थ USB सुरक्षा मूल्यांकन करने में सक्षम बनाने के लिए RabbitMQ और WiFi पहुंच का उपयोग करता है। ConfigFS का लाभ उठाकर, AutoGadgetFS उपयोगकर्ताओं को जल्दी से उपकरणों को क्लोन और एम्युलेट करने की अनुमति देता है, प्रत्येक कार्यान्वयन के विवरण में गहराई से जाने की आवश्यकता को समाप्त करता है। फ्रेमवर्क उपयोगकर्ताओं को इसके ऊपर अपने स्वयं के फ़ज़र बनाने की भी अनुमति देता है।
<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:
<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. HID उपकरणों के लिए AGFS इन द मिडल स्निफिंग करें (संचार को डिस्क पर सेव करें)।
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. रास्पबेरी पाई को सभी इंटरफ़ेस के साथ USB डिवाइस अनुकरण के लिए पूर्ण समर्थन देने पर काम करें।
1. सीक्वेंस नंबरों के माध्यम से भेजे और प्राप्त पैकेटों को सहसंबंधित करें।
---
<a name="Installation"/>
### इंस्टॉलेशन:
<a name="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
```
* बेहतर ipython अनुभव के लिए prompt toolkit को डाउनग्रेड करें:
```bash
sudo python3 -m pip install prompt-toolkit~=2.0
```
* rabbitMQ के लिए वेब इंटरफ़ेस सक्षम करें
```bash
sudo rabbitmq-plugins enable rabbitmq_management
http://localhost:15672/ to reach the web interface
```
* वेब इंटरफ़ेस में क्रेडेंशियल *guest:guest* से लॉगिन करें
* नोट: यदि आप rabbitMQ को `localhost` पर इंस्टॉल नहीं कर रहे हैं, तो निम्नलिखित उपयोगकर्ता जोड़ें और उससे लॉगिन करें:
```bash
sudo rabbitmqctl add_user autogfs usb4ever
sudo rabbitmqctl set_user_tags autogfs administrator
```
* rabbitMQ कॉन्फ़िगरेशन फ़ाइल अपलोड करें
* ओवरव्यू टैब में सबसे नीचे जाकर इम्पोर्ट डेफ़िनिशन पर क्लिक करें
* *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
[+]सामान्य सांख्यिकी
Full charset : !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Discarded charset : !"#$%&'()*+,-./:;<=>?@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]: 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 ||-->USBlyzer कैप्चर से sqlite तालिका और कॉलम बनाएं।
____________________________________________________________________________________________________________________________
decodePacketAscii ||-->यह विधि पैकेट बाइट्स को वापस Ascii में डिकोड करती है।
____________________________________________________________________________________________________________________________
describeFuzz ||-->यह विधि आपको पैकेट का वर्णन करने और चुनने देती है कि कौन से बाइट्स फ़ज़्ड किए जाएंगे।
____________________________________________________________________________________________________________________________
devEnumCtrltrnsf ||-->यह विधि कंट्रोल ट्रांसफर अनुरोध के सभी संभावित संयोजनों को एन्यूमरेट करती है।
____________________________________________________________________________________________________________________________
devReset ||-->यह विधि डिवाइस को रीसेट करती है।
____________________________________________________________________________________________________________________________
devWrite ||-->इसे एक विधि के साथ उपयोग करने के लिए जो डिवाइस पर लिखता है, सुनिश्चित करें कि आप startSniffReadThread(self,endpoint=None, pts=None, queue=None,channel=None) चलाएं।
____________________________________________________________________________________________________________________________
devctrltrnsf ||-->यह विधि आपको लक्ष्य डिवाइस पर ctrl ट्रांसफर अनुरोध भेजने की अनुमति देती है।
____________________________________________________________________________________________________________________________
deviceInfo ||-->होस्ट से जुड़े किसी भी USB के लिए पूर्ण जानकारी प्राप्त करता है।
____________________________________________________________________________________________________________________________
deviceInterfaces ||-->डिवाइस पर सभी इंटरफ़ेस और एंडपॉइंट प्राप्त करें।
____________________________________________________________________________________________________________________________
devrandfuzz ||-->यह विधि आपको urandom का उपयोग करके निश्चित या यादृच्छिक आकार के पैकेट बनाने की अनुमति देती है।
____________________________________________________________________________________________________________________________
devseqfuzz ||-->यह विधि आपको अनुक्रमिक रूप से बढ़ते पैकेट बनाने और उन्हें डिवाइस पर भेजने की अनुमति देती है।
____________________________________________________________________________________________________________________________
findSelect ||-->यह विधि सभी जुड़े USB उपकरणों की गणना करती है और आपको इसे लक्ष्य डिवाइस के साथ-साथ उसके एंडपॉइंट्स के रूप में चुनने की अनुमति देती है।
____________________________________________________________________________________________________________________________
help ||-->AutogadgetFS सहायता विधि
____________________________________________________________________________________________________________________________
hostwrite ||-->यह विधि होस्ट पर पैकेट लिखती है, या तो किसी सॉफ़्टवेयर या डिवाइस को नियंत्रित करने वाले ड्राइवर को लक्षित करते हुए।
____________________________________________________________________________________________________________________________
hstrandfuzz ||-->यह विधि आपको urandom का उपयोग करके निश्चित या यादृच्छिक आकार के पैकेट बनाने और उन्हें होस्ट क्यू में भेजने की अनुमति देती है।
____________________________________________________________________________________________________________________________
monInterfaceChng ||-->इंटरफ़ेस में परिवर्तनों की निगरानी के लिए जिम्मेदार विधि, इसे def startMonInterfaceChng(self) से कॉल किया जाता है।
____________________________________________________________________________________________________________________________
newProject ||-->यदि आप कुछ और परीक्षण कर रहे थे तो एक नया प्रोजेक्ट नाम बनाता है।
____________________________________________________________________________________________________________________________
releasedev ||-->डिवाइस को रिलीज़ करता है और कर्नेल ड्राइवर को पुनः संलग्न करता है।
____________________________________________________________________________________________________________________________
removeGadget ||-->यह विधि RaspberryPi से गैजेट को हटाती है।
____________________________________________________________________________________________________________________________
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 ||-->यह विधि USBlyzer से निर्यात किए गए आपके xml को पार्स करेगी और फिर उन्हें डेटाबेस में आयात करेगी।
____________________________________________________________________________________________________________________________
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.