Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
QCSuper — QCSuper is a tool communicating with Qualcomm-based phones and modems, allowing to capture raw 2G/3G/4G radio frames, among other things. | Kitploit
उपकरण/GitHubGitHub/p1sec/qcsuper
Embedded Systems SecurityPacket Sniffing & AnalysisMemory ForensicsNetwork ForensicsMobile ForensicsWireless SecurityMobile Security
GitHubp1sec/qcsuper

QCSuper

QCSuper is a tool communicating with Qualcomm-based phones and modems, allowing to capture raw 2G/3G/4G radio frames, among other things.

रिपॉजिटरी देखें
1.6k27929 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

QCSuper

QCSuper Qualcomm-आधारित फोन और मॉडेम के साथ संचार करने वाला एक टूल है, जो अन्य चीज़ों के अलावा कच्चे 2G/3G/4G (और कुछ मॉडलों के लिए 5G) रेडियो फ्रेम कैप्चर करने की सुविधा देता है।

यह आपको रूटेड Android फोन, USB डोंगल या किसी अन्य प्रारूप में मौजूदा कैप्चर का उपयोग करके इसका PCAP कैप्चर उत्पन्न करने की अनुमति देगा।

Wireshark के साथ QCSuper का उपयोग करने का स्क्रीनशॉट

इंस्टॉल करने के बाद, आप अपने रूटेड फोन को USB में प्लग कर सकते हैं और एक संगत डिवाइस के साथ इसका उपयोग करना उतना ही सरल है जितना:```bash qcsuper --adb --wireshark-live

root@kitploit:~
या, यदि आपने अपने फ़ोन पर मैन्युअल रूप से Diag पोर्ट एक्सपोज़ करना सक्षम किया है (संबंधित प्रक्रिया आपके फ़ोन मॉडेम और निर्माता के आधार पर भिन्न हो सकती है, अधिक स्पष्टीकरण के लिए नीचे देखें), या यदि आपने मोबाइल ब्रॉडबैंड डोंगल लगाया है:```bash
qcsuper --usb-modem auto --wireshark-live

यह Qualcomm Diag प्रोटोकॉल का उपयोग करता है, जिसे QCDM या DM (Diagnostic Monitor) भी कहा जाता है, ताकि आपके फोन के बेसबैंड से संचार किया जा सके।

क्या आप रिपोर्ट करना चाहते हैं कि आपका डिवाइस काम करता है या नहीं? आप एक Github issue खोल सकते हैं।

विषय-सूची

  • स्थापना (Installation)
    • Linux स्थापना (PIP)
    • Linux स्थापना (UV)
    • Windows स्थापना
  • समर्थित प्रोटोकॉल
  • उपयोग सूचना

परिशिष्ट (Annexes):

  • USB मॉडेम के साथ QCSuper का उपयोग करना
  • समर्थित डिवाइस
  • Diag प्रोटोकॉल का उपयोग करने वाले संबंधित उपकरण

ब्लॉग पोस्ट/डेमो: Presenting QCSuper: a tool for capturing your 2G/3G/4G air traffic on Qualcomm-based phones

अधिक दस्तावेज़:

  • The Diag protocol
  • QCSuper architecture

स्थापना

QCSuper का हाल ही में Ubuntu LTS 22.04+ पर परीक्षण और विकास किया गया है और यह Windows 11 पर भी उपयोग किया गया है। यह कुछ Python मॉड्यूल पर निर्भर करता है। बेहतर संगतता के लिए Linux का उपयोग करने की सलाह दी जाती है।

इसे उपयोग करने के लिए, आपका फोन रूट होना चाहिए या USB पर diag सेवा पोर्ट उजागर करना चाहिए। अपने फोन के साथ संगतता की जाँच करने के लिए, GSMArena जैसी साइट पर फोन का मॉडल देखें और जाँचें कि उसमें Qualcomm प्रोसेसर है या नहीं।

QCSuper द्वारा उत्पादित PCAP फ़ाइलों को खोलने के लिए, आप 2G/3G फ्रेम के लिए किसी भी Wireshark 2.x - 4.x का उपयोग कर सकते हैं, लेकिन 4G फ्रेम के लिए आपको कम से कम Wireshark 2.5.x की आवश्यकता है (और 4G फ्रेम से डिक्रिप्ट किए गए व्यक्तिगत NAS संदेशों के लिए 2.6.x)। Ubuntu वर्तमान में सभी संस्करणों के लिए पर्याप्त नया बिल्ड प्रदान करता है।

5G फ्रेम को डिकोड करना Wireshark 3.6.x और उससे ऊपर के तहत परीक्षण किया गया था और यह स्वचालित रूप से Wireshark Lua प्लग-इन स्थापित करके किया जाएगा (Windows पर %APPDATA%\Wireshark\plugins में या Linux और macOS पर ~/.local/lib/wireshark/plugins में), जिसे DONT_INSTALL_WIRESHARK_PLUGIN=1 पर्यावरण चर सेट करके टाला जा सकता है, यदि आप इसे टालना चाहते हैं।

Linux स्थापना (PIP)

PyPI से QCSuper के स्थिर संस्करण को सिस्टम-व्यापी रूप से स्थापित करने के लिए, आप ये कमांड चला सकते हैं:```bash

Install dependencies

sudo apt install python3-pip wireshark

Install stable QCSuper system-wide

sudo pip3 install --upgrade qcsuper --break-system-packages

root@kitploit:~
फिर, आप अपने टर्मिनल में `qcsuper` टाइप करके QCSuper चला सकते हैं।

किसी विशिष्ट फ़ोल्डर में डेवलपमेंट संस्करण स्थापित करने के लिए, एक टर्मिनल खोलें और निम्नलिखित टाइप करें:```bash
# Download QCSuper
git clone https://github.com/P1sec/qcsuper
cd qcsuper

# Install dependencies
sudo apt install python3-pip wireshark
sudo pip3 install --upgrade . --break-system-packages

फिर, टर्मिनल में ./qcsuper.py कमांड का उपयोग करके, qcsuper/ निर्देशिका से QCSuper चलाएँ।

Linux इंस्टॉलेशन (UV)

Linux पर, आप uv पैकेज मैनेजर का उपयोग करके QCSuper इंस्टॉल कर सकते हैं, जो PIP का एक आधुनिक विकल्प है।

सबसे पहले, uv इंस्टॉल करने के लिए अपने टर्मिनल में इनमें से एक कमांड चलाएँ:```bash sudo snap install --classic astral-uv # On Ubuntu sudo dnf install -y uv # On Fedora sudo pacman -S uv # On Archlinux, Manjaro curl -LsSf https://astral.sh/uv/install.sh | sh # On Debian and others

root@kitploit:~
फिर, नवीनतम स्थिर संस्करण स्थापित करने के लिए यह चलाएँ:```bash
uv tool install qcsuper

वैकल्पिक रूप से, आप इस कमांड का उपयोग करके नवीनतम विकास संस्करण स्थापित कर सकते हैं:```bash uv tool install git+https://github.com/P1sec/qcsuper

root@kitploit:~
आप फिर इसे अपने टर्मिनल में टाइप कर सकते हैं:```bash
qcsuper

हालाँकि, यदि आपको qcsuper को root के रूप में चलाने की आवश्यकता है, उदाहरण के लिए क्योंकि आप मॉडेम डिवाइस से डेटा पढ़ रहे हैं, तो sudo के साथ uv का उपयोग करते समय qcsuper $PATH में नहीं हो सकता है, इसलिए इसके लिए कुछ ऐसा करने की आवश्यकता हो सकती है:```bash sudo env "PATH=$PATH" qcsuper

root@kitploit:~
यदि आप उपकरण के विकास में भाग लेना चाहते हैं, तो आप स्रोत को डाउनलोड करने के लिए इन कमांडों का उपयोग कर सकते हैं, फिर `~/.local/bin` में QCSuper के लिए स्रोत निर्देशिका की ओर सिम्बोलिक लिंक बना सकते हैं:```bash
git clone https://github.com/P1sec/qcsuper
cd qcsuper
uv sync # Create .venv in the current directory
uv tool install -e . # Create symlinks into ~/.local/bin

विंडोज़ स्थापना

QCSuper विंडोज़ पर चल सकता है, लेकिन आपको पहले से यह सुनिश्चित कर लेना चाहिए कि Google का ADB प्रॉम्प्ट आपकी मशीन पर आपके डिवाइस के साथ सही ढंग से चलता है, और आपको उस स्थिति में मैन्युअल रूप से libusb-win32 फ़िल्टर भी बनाने चाहिए (इसे स्थापित करने के बाद स्टार्ट मेनू में उपलब्ध उपयोगिता के माध्यम से), जहाँ आपके डिवाइस को स्यूडो-सीरियल USB पर Diag पोर्ट से सीधे कनेक्ट करने की आवश्यकता होती है।

(कृपया ध्यान दें कि यदि आप अपने डिवाइस का मोड-स्विच करते हैं, तो संबद्ध USB PID/VID बदल सकता है और इसके लिए libusb-win32 फ़िल्टर निर्माण उपयोगिता में ड्राइवर संबद्धता दोबारा करने की आवश्यकता हो सकती है - और/या स्थिति के आधार पर विंडोज़ परिधीय उपकरण प्रबंधक में)

विंडोज़ पर, आपको (Google के ADB कर्नेल ड्राइवरों के अतिरिक्त) अपने फ़ोन मॉडल के लिए अपने फ़ोन के USB ड्राइवर डाउनलोड और इंस्टॉल करने की आवश्यकता हो सकती है (इसमें सामान्य Qualcomm USB ड्राइवर शामिल हो सकते हैं)। कृपया निर्देशों के लिए Google पर अपने फ़ोन का मॉडल + "USB ड्राइवर" या "ADB ड्राइवर" खोजें।

फिर, आपको यह सुनिश्चित करना होगा कि आप adb का उपयोग करके अपने डिवाइस तक पहुँच सकते हैं। आप adb को डाउनलोड और सेटअप करने के तरीके पर एक ट्यूटोरियल यहाँ पा सकते हैं। आगे बढ़ने के लिए adb.exe shell (या आप जिस भी निष्पादन योग्य पथ का उपयोग करते हैं, QCSuper के qcsuper/inputs/external/adb फ़ोल्डर में ADB निष्पादन योग्य की एक प्रति मौजूद है) कमांड को एक प्रॉम्प्ट प्रदर्शित करना चाहिए।

फिर, इन लिंक्स का अनुसरण करें (इस टूल का हाल ही में विंडोज़ 11 पर परीक्षण किया गया है - यह विंडोज़ 7 पर काम करेगा इसकी गारंटी नहीं है) इस क्रम में:

  • Python 3.12 स्थापित करें (विंडोज़ 7 संस्करण: Python 3.7) या उससे नया
  • Wireshark 4.2 स्थापित करें (विंडोज़ 7 संस्करण: Wireshark 3.6 स्थापित करें) या उससे नया
  • libusb-win32 1.2.7.3 स्थापित करें (विंडोज़ 7 संस्करण: libusb-win32 1.2.3.7) या उससे नया
  • यह सुनिश्चित करने के लिए अपना कमांड प्रॉम्प्ट/टर्मिनल पुनः प्रारंभ करें कि %PATH% सिस्टम वेरिएबल अपडेट हो गया है।
  • QCSuper डाउनलोड करें और निकालें

आवश्यक Python मॉड्यूल स्थापित करने के लिए, अपना कमांड प्रॉम्प्ट खोलें और टाइप करें:```bash pip3 install --upgrade pyserial pyusb crcmod pycrate https://github.com/pyocd/libusb-package/archive/master.zip

root@kitploit:~
अपने कमांड प्रॉम्प्ट में, `cd` कमांड का उपयोग करके QCSuper वाले निर्देशिका में जाएँ। फिर आप कमांड निष्पादित कर सकते हैं (जो `py qcsuper.py` या `py3 qcsuper.py` से शुरू होनी चाहिए यदि आपने ऑनलाइन इंस्टॉलर से Python 3 स्थापित किया है, या `python3.exe .\qcsuper.py` यदि आपने इसे Windows Store से स्थापित किया है)।

जैसा ऊपर बताया गया है, यह संभव है कि आपको स्टार्ट मेनू में उपलब्ध उपयोगिता के माध्यम से `libusb-win32` फ़िल्टर जोड़ना पड़े, ताकि यह सुनिश्चित किया जा सके कि मोड-स्विच किए गए डिवाइस पर Diag पोर्ट के अनुरूप इंटरफ़ेस QCSuper को दिखाई दे (यदि ADB ड्राइवर काम कर रहा है और डिवाइस सही ढंग से रूटेड है, तो `--adb` फ़्लैग का उपयोग करके टूल चलाने का पहला असफल प्रयास मोड-स्विच को ट्रिगर करना चाहिए)।

<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/48811/e7aab43a3643cd941857febb8fcb8e2d7bf8c3638629a4e5591dc689afa48c07.png" alt="Screenshot of adding a libusb-win32 filter for the Diag port of a Mi phone">
</p>

## समर्थित प्रोटोकॉल

QCSuper कुछ मोबाइल रेडियो प्रोटोकॉलों को कैप्चर करने में सहायता करता है। ये प्रोटोकॉल [GSMTAP हेडर](http://osmocom.org/projects/baseband/wiki/GSMTAP) के बाद रखे जाते हैं, जो एक मानक हेडर है (UDP/IP में एनकैप्सुलेटेड) जो प्रोटोकॉल की पहचान करने की अनुमति देता है, और GSMTAP पैकेट [PCAP फ़ाइल](https://wiki.wireshark.org/Development/LibpcapFileFormat) में रखे जाते हैं, जिसका विश्लेषण Wireshark का उपयोग करके पूरी तरह से किया जा सकता है।

2G/3G/4G प्रोटोकॉल को कुछ "परतों" में विभाजित किया जा सकता है: परत 1 डिजिटल रेडियो मॉड्यूलेशन और मल्टीप्लेक्सिंग के बारे में है, परत 2 विखंडन और स्वीकृति जैसी चीजों को संभालती है, परत 3 वास्तविक सिग्नलिंग या उपयोगकर्ता डेटा है।

QCSuper आपको अक्सर परत 3 पर कैप्चर करने की अनुमति देता है, क्योंकि यह Wireshark का उपयोग करके विश्लेषण करने के लिए सबसे व्यावहारिक है, और यही Diag प्रोटोकॉल मूल रूप से प्रदान करता है (और कुछ दिलचस्प जानकारी यहाँ होती है)।

* 2G (GSM): परत 3 और उससे ऊपर (RR/...)
* 2.5G (GPRS और EDGE): परत 2 और उससे ऊपर (MAC-RLC/...) डेटा स्वीकृतियों के लिए
* 3G (UMTS): परत 3 और उससे ऊपर (RRC/...)
  * इसके अतिरिक्त, यह SIBs (सिस्टम इंफॉर्मेशन ब्लॉक्स, सभी उपयोगकर्ताओं को प्रसारित डेटा) को अलग GSMTAP फ्रेम्स में पुनः जोड़ने का समर्थन करता है, क्योंकि Wireshark वर्तमान में यह स्वयं नहीं कर सकता: फ़्लैग `--reassemble-sibs`
* 4G (LTE): परत 3 और उससे ऊपर (RRC/...)
  * इसके अतिरिक्त, यह डिक्रिप्टेड NAS संदेशों को, जो RRC पैकेट में एन्क्रिप्टेड एम्बेडेड होते हैं, अतिरिक्त फ्रेम्स में रखने का समर्थन करता है: फ़्लैग `--decrypt-nas`

डिफ़ॉल्ट रूप से, आपके डिवाइस द्वारा भेजा गया IP ट्रैफ़िक शामिल नहीं होता, आप केवल सिग्नलिंग फ्रेम्स देखते हैं। आप `--include-ip-traffic` विकल्प का उपयोग करके अपने द्वारा उत्पन्न IP ट्रैफ़िक को शामिल कर सकते हैं (IP 2G/3G/4G में आपके डेटा ट्रैफ़िक के लिए लगभग परत 3 है, इस विवरण के साथ कि इसके हेडर संपीड़ित हो सकते हैं (ROHC) और एक छोटा PPP हेडर शामिल हो सकता है)।

आपके द्वारा भेजा गया डेटा ट्रैफ़िक सिग्नलिंग ट्रैफ़िक से भिन्न चैनल का उपयोग करता है; यह चैनल सिग्नलिंग ट्रैफ़िक के माध्यम से सेट किया जाता है; इसलिए QCSuper को आपको इस चैनल को आरंभ करने के तरीके से संबंधित सभी विवरण दिखाने चाहिए।

## उपयोग सूचना

QCSuper का उपयोग करने के लिए, आप एक इनपुट निर्दिष्ट करते हैं (जैसे: `--adb` (Android फोन), `--usb-modem`) और एक या अधिक मॉड्यूल (`--wireshark-live` Wireshark खोलने के लिए, `--pcap-dump` ट्रैफ़िक को PCAP फ़ाइल में लिखने के लिए, `--info` डिवाइस के बारे में सामान्य जानकारी के लिए...)।

कुछ कमांड जिन्हें आप टाइप कर सकते हैं:```bash
# Open Wireshark directly, using a rooted Android phone as an input,
# for compatible phones:
$ qcsuper --adb --wireshark-live

# ^ this command is equivalent to (prefer this when running as root):
$ qcsuper --adb --pcap-dump - | wireshark -k -i -

# Same, but dump to a PCAP file instead of opening Wireshark directly
$ qcsuper --adb --pcap-dump /tmp/my_pcap.pcap

या, यदि यह काम करने के लिए पर्याप्त सरल नहीं है:```bash

Same, but using an USB modem/phone exposing a Diag serial port

directly over USB, in the case where the "--adb" mode does not

work directly:

- With a compatible Android phone where the Diag port over USB has

been manually enabled by the user (see the "How to manually enable

the diagnostic ports on my phone" section below for a summary of

how this may be possible with most Qualcomm-based models)

In this case, you may try:

$ qcsuper --usb-modem auto --wireshark-live

Or, if selecting manually the USB device corresponding to the

Diag-enabled phone turns to be requried:

$ lsusb (..) Bus 001 Device 076: ID 05c6:9091 Qualcomm, Inc. Intex Aqua Fish & Jolla C Diagnostic Mode $ qcsuper --usb-modem 1d6b:0003 --wireshark-live # With vendor ID:product ID... $ qcsuper --usb-modem 002:001 --wireshark-live # ...or with bus ID:device ID

Or, if selecting the configuration number and interface number (referred as "bConfigurationValue" and "bInterfaceNumber" in the USB desciprtors) turn to be required:

$ lsusb -v (..) $ qcsuper --usb-modem 1d6b:0003:1:0 --wireshark-live # With vendor ID:product ID:configuration:interface... $ qcsuper --usb-modem 002:001:1:0 --wireshark-live # ...or with bus ID:device ID:configuration:interface

- With a generic serial-over-USB device where the "usbserial" module has

loaded a /dev/ttyUSB{0-9} device corresponding to the diagnostic port:

$ qcsuper --usb-modem /dev/ttyUSB2 --wireshark-live

- With an Option device where the "hsoserial" module has loaded a

/dev/ttyHS{0-9} device corresponding to the diagnostic port:

$ qcsuper --usb-modem /dev/ttyHS2 --wireshark-live

root@kitploit:~
Here is the current usage notice for QCSuper:

यहाँ QCSuper के लिए वर्तमान उपयोग सूचना है:```
usage: qcsuper [-h] [--cli] [--efs-shell] [--efs-shell2] [-v] (--adb | --adb-wsl2 ADB_WSL2 | --tcp IP_ADDRESS:TCP_PORT | --usb-modem TTY_DEV | --dlf-read DLF_FILE |
               --json-geo-read JSON_FILE) [--info] [--pcap-dump PCAP_FILE] [--wireshark-live] [--memory-dump OUTPUT_DIR] [--dlf-dump DLF_FILE] [--json-geo-dump JSON_FILE]
               [--decoded-sibs-dump] [--reassemble-sibs] [--decrypt-nas] [--include-ip-traffic] [--start MEMORY_START] [--stop MEMORY_STOP]

A tool for communicating with the Qualcomm DIAG protocol (also called QCDM or DM).

options:
  -h, --help            show this help message and exit
  --cli                 Use a command prompt, allowing for interactive completion of commands.
  --efs-shell           Spawn an interactive shell to navigate within the embedded filesystem (EFS) of the baseband device.
  --efs-shell2          Spawn an interactive shell to navigate within the embedded filesystem (EFS) of the baseband device. Use the secondary filesystem known as "alternate".
  -v, --verbose         Add output for each received or sent Diag packet.

Input mode:
  Choose an one least input mode for DIAG data.

  --adb                 Use a rooted Android phone with USB debugging enabled as input (requires adb).
  --adb-wsl2 ADB_WSL2   Unix path to the Windows adb executable. Equivalent of --adb command but with WSL2/Windows interoperability.
  --tcp IP_ADDRESS:TCP_PORT
                        Connect to remote TCP service exposing DIAG interface.
  --usb-modem TTY_DEV   Use an USB modem exposing a DIAG pseudo-serial port through USB.
                        Possible syntaxes:
                          - "auto": Use the first device interface in the system found where the
                            following criteria is matched, by order of preference:
                            - bInterfaceClass=255/bInterfaceSubClass=255/bInterfaceProtocol=48/bNumEndpoints=2
                            - bInterfaceClass=255/bInterfaceSubClass=255/bInterfaceProtocol=255/bNumEndpoints=2
                          - usbserial or hso device name (Linux/macOS): "/dev/tty{USB,HS,other}{0-9}"
                          - COM port identifier (Windows): "COM{0-9}"
                          - "vid:pid[:cfg:intf]" (vendor ID/product ID/optional bConfigurationValue/optional
                            bInterfaceNumber) format in hexa: e.g. "05c6:9091" or "05c6:9091:1:0 (vid and pid
                            are four zero-padded hex digits, cfg and intf are canonical values from the USB
                            descriptor, or guessed using the criteria specified for "auto" above if not specified)
                          - "bus:addr[:cfg:intf]" (USB bus/device address/optional bConfigurationValue/optional
                            bInterfaceNumber) format in decimal: e.g "001:003" or "001:003:0:3" (bus and addr are
                            three zero-padded digits, cfg and intf are canonical values from the USB descriptor)
  --dlf-read DLF_FILE   Read a DLF file generated by QCSuper or QXDM, enabling interoperability with vendor software.
  --json-geo-read JSON_FILE
                        Read a JSON file generated using --json-geo-dump.

Modules:
  Modules writing to a file will append when it already exists, and consider it Gzipped if their name contains ".gz".

  --info                Read generic information about the baseband device.
  --pcap-dump PCAP_FILE
                        Generate a PCAP file containing GSMTAP frames for 2G/3G/4G, to be loaded using Wireshark.
  --wireshark-live      Same as --pcap-dump, but directly spawn a Wireshark instance.
  --memory-dump OUTPUT_DIR
                        Dump the memory of the device (may not or partially work with recent devices).
  --dlf-dump DLF_FILE   Generate a DLF file to be loaded using QCSuper or QXDM, with network protocols logging.
  --json-geo-dump JSON_FILE
                        Generate a JSON file containing both raw log frames and GPS coordinates, for further reprocessing. To be used in combination with --adb.
  --decoded-sibs-dump   Print decoded SIBs to stdout (experimental, requires pycrate).

PCAP generation options:
  To be used along with --pcap-dump or --wireshark-live.

  --reassemble-sibs     Include reassembled UMTS SIBs as supplementary frames, also embedded fragmented in RRC frames.
  --decrypt-nas         Include unencrypted LTE NAS as supplementary frames, also embedded ciphered in RRC frames.
  --include-ip-traffic  Include unframed IP traffic from the UE.

Memory dumping options:
  To be used along with --memory-dump.

  --start MEMORY_START  Offset at which to start to dump memory (hex number), by default 00000000.
  --stop MEMORY_STOP    Offset at which to stop to dump memory (hex number), by default ffffffff.

- निर्दिष्ट करने पर stdin से डेटा पाइप करना या stdout की ओर पाइप करना समर्थित है (gzipped सामग्री का पता नहीं चल सकता है)।

मेरे फ़ोन को root कैसे करें?

यह README फ़ाइल आपके फ़ोन को root करने (आपके फ़ोन को ऐसी कमांड चलाने में सक्षम बनाना जैसे "su") के लिए कोई गाइड नहीं है।

अधिकांश हाल के Android डिवाइसों में, bootloader को अनलॉक करने के लिए आपको पहले फ़ोन की developer settings में मौजूद "OEM/bootloader unlock" विकल्प का उपयोग करना होगा, फिर आप Magisk जैसे टूल का उपयोग कर सकते हैं जो आपके फ़ोन के bootloader के लिए एक patched image प्राप्त करने में सक्षम बनाएगा, जिसे आप बाद में fastboot मोड में अपने फ़ोन पर लोड कर सकेंगे।

QCSuper के पास आपके Qualcomm-आधारित डिवाइस पर अधिक आसानी से काम करने की संभावना तब होगी जब आपका फ़ोन rooted हो, लेकिन अक्सर ऐसे तरीके होते हैं जिनसे आपके फ़ोन को root किए बिना Qualcomm Diag USB मोड (जिसे "DM", Diag Monitor भी कहा जाता है) सक्षम किया जा सकता है। यह निर्भर करता है आपके फ़ोन विक्रेता पर और उदाहरण के लिए, आपके फ़ोन के डायलर कीपैड पर अंकों का एक जादुई संयोजन टाइप करने के माध्यम से होता है। अधिक विवरण के लिए कृपया नीचे "How to manually enable the diagnostic ports on my phone?" अनुभाग देखें।

अपने फ़ोन को root करने से पहले, याद रखें कि आप अपने OEM-unlocked फ़ोन पर TWRP जैसी वैकल्पिक recovery image लोड करना भी चाह सकते हैं ताकि TWRP जैसे टूल का उपयोग करके partition backup किया जा सके (यह उतना ही सरल हो सकता है जितना कि Fastboot के माध्यम से image लोड करना, TWRP की settings में ADB लिंक सक्षम करना, और /dev/block/by-name फ़ोल्डर में चयनित partitions पर adb pull का उपयोग करना)।

अपने फ़ोन मॉडल पर root करने या Diag मोड सक्षम करने के विशिष्ट निर्देशों के लिए, आप उपयुक्त कीवर्ड के साथ XDA-developers फ़ोरम पर जानकारी खोज सकते हैं।

मेरे फ़ोन पर diagnostic ports को मैन्युअल रूप से कैसे सक्षम करें?

Qualcomm/MSM Android-आधारित डिवाइसों पर जिनमें Linux kernel 4.9 या उससे पहले का संस्करण है (इसमें लगभग Android 12 तक के कुछ डिवाइस और Android 10 से पहले के सभी डिवाइस शामिल हैं), Qualcomm-आधारित Android डिवाइसों में सामान्यतः /dev/diag नामक एक system device होता है जो baseband के diagnostics port तक डेटा संचारित करने की अनुमति देता है।

Qualcomm/MSM Android-आधारित डिवाइसों पर जिनमें Linux kernel 4.14 या उसके बाद का संस्करण है (इसमें लगभग Android 10 से कुछ डिवाइस और Android 13 से सभी डिवाइस शामिल हैं), /dev/diag गायब हो गया, क्योंकि संबंधित diagchar मॉड्यूल हाल के AOSP/Linux kernels में डिफ़ॉल्ट रूप से अक्षम है।

Linux 4.9 या उससे पहले के MSM kernel वाले डिवाइसों पर, --adb फ़्लैग का उपयोग करते समय, QCSuper स्वचालित रूप से ADB के माध्यम से कनेक्ट करने का प्रयास करेगा, फिर /dev/diag डिवाइस से जुड़ने वाली एक executable utility को स्थानांतरित करने का प्रयास करेगा, ताकि इसे su -c /data/local/tmp/adb_bridge जैसी कमांड का उपयोग करके root के रूप में लॉन्च किया जा सके, और फिर डिवाइस के साथ TCP पर diagnostics डेटा संचारित करेगा (संबंधित TCP पोर्ट को ADB के माध्यम से आगे भी अग्रेषित करेगा)।

Linux 4.14 या उसके बाद के MSM kernel वाले डिवाइसों पर, --adb फ़्लैग का उपयोग करते समय, QCSuper स्वचालित रूप से ADB के माध्यम से कनेक्ट करने का प्रयास करेगा, फिर फ़ोन के USB पोर्ट को mode-switch करने के लिए su -c 'setprop sys.usb.config diag,adb' जैसी कमांड का उपयोग करने का प्रयास करेगा, और फिर --usb-modem auto फ़्लैग के समकक्ष निष्पादित करेगा (नीचे देखें)।

--usb-modem <value> फ़्लैग QCSuper को USB पर pseudo-serial port के माध्यम से Qualcomm diagnostics port से कनेक्ट करने की अनुमति देता है, जो ADB से स्वतंत्र रूप से, बाहरी डिवाइस का उपयोग करके Android-आधारित फ़ोन के Qualcomm diag प्रोटोकॉल से जुड़ने का सबसे सामान्य तरीका है।

--usb-modem <value> फ़्लैग का उपयोग करने के लिए, संबंधित फ़ोन पर Qualcomm diagnostic port सक्षम होना चाहिए, अन्यथा कहें तो फ़ोन को पहले से USB mode-switched होना चाहिए।

अपने डिवाइस को USB mode-switch करने का सबसे सामान्य तरीका root के रूप में setprop sys.usb.config diag,adb जैसी कमांड निष्पादित करना है, लेकिन कुछ फ़ोन विक्रेताओं के साथ Qualcomm diagnostics-over-USB मोड सक्षम करने के अन्य तरीके भी हो सकते हैं, उदाहरण के लिए कुछ डिवाइसों के लिए Diag को बिना root के सक्षम करने के संभावित तरीकों के लिए यह पृष्ठ देखें - इसमें अक्सर फ़ोन के डायलर कीपैड पर अंकों का एक जादुई संयोजन टाइप करना शामिल होता है।

अन्य डिवाइसों में, फ़ोन विक्रेता द्वारा हस्ताक्षरित और System-संबंधित अनुमतियों वाली APK फ़ाइल का उपयोग करके बिना rooting के Diag मोड सक्षम करना भी संभव हो सकता है (उदाहरण के लिए Xiaomi-आधारित डिवाइसों के लिए com.longcheertel.midtest APK के बारे में खोजें)।

एक बार जब आपके डिवाइस को सही ढंग से mode-switch कर दिया जाता है, तो ADB पर getprop sys.usb.config कमांड चलाने पर diag युक्त एक टेक्स्ट स्ट्रिंग प्रदर्शित होनी चाहिए।

फिर, आपके कंप्यूटर की ओर से, lsusb (Linux पर) चलाने पर आपके डिवाइस को संदर्भित करने वाली एक पंक्ति प्रदर्शित होनी चाहिए, उदाहरण के लिए:``` Bus 001 Device 076: ID 05c6:9091 Qualcomm, Inc. Intex Aqua Fish & Jolla C Diagnostic Mode

root@kitploit:~
Note the `001:076` (bus index/device index identifier), and the `05c6:9091` (vendor ID/product ID) information present in this output.

Once you have this information available, **you may try to use a flag such as `--usb-modem 05c6:9091` or `--usb-modem 001:076`** with QCSuper (please respect the digit padding).

If this isn't conclusive, you may use the `lsusb -v -d 05c6:9091` command, which should produce detailed output, including the USB configurations, interfaces and endpoints for the corresponding USB device:```
Bus 001 Device 027: ID 05c6:9091 Qualcomm, Inc. Intex Aqua Fish & Jolla C Diagnostic Mode
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x05c6 Qualcomm, Inc.
  idProduct          0x9091 Intex Aqua Fish & Jolla C Diagnostic Mode
  bcdDevice            5.04
  iManufacturer           1 Xiaomi
  iProduct                2 Mi 11
  iSerial                 3 d94f4341
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0086
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          4 Default composition
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol     48 
      iInterface              0 
[...]

QCSuper आपको संबंधित डिवाइस पर उस कॉन्फ़िगरेशन और इंटरफ़ेस के पहचानकर्ताओं को मैन्युअल रूप से चुनने की अनुमति देता है, जिनसे आप कनेक्ट करने का प्रयास करना चाहते हैं (जिन्हें रॉ USB डिस्क्रिप्टर में bConfigurationValue और bInterfaceNumber के रूप में नामित किया गया है), उस स्थिति में जब इसे सही ढंग से पहचाना नहीं गया है। उदाहरण के लिए, --usb-modem 05c6:9091:1:0 फ़्लैग संबंधित डिवाइस पर क्रमशः कॉन्फ़िगरेशन 1 और इंटरफ़ेस 0 का चयन करेगा। --usb-modem 05c6:9091:1:4 कॉन्फ़िगरेशन 1 पर इंटरफ़ेस 4 का चयन करेगा।

यदि कॉन्फ़िगरेशन और इंटरफ़ेस इंडेक्स का विवरण निर्दिष्ट नहीं है, तो यह सिस्टम USB बस पर पहले इंटरफ़ेस डिस्क्रिप्टर का चयन करेगा जो निम्नलिखित मानदंडों से मेल खाता पाया जाता है, प्राथमिकता के क्रम में:

  • bInterfaceClass=255/bInterfaceSubClass=255/bInterfaceProtocol=48/bNumEndpoints=2
  • bInterfaceClass=255/bInterfaceSubClass=255/bInterfaceProtocol=255/bNumEndpoints=2

--usb-modem auto फ़्लैग का उपयोग करते समय, पहला डिवाइस जो इस मानदंड के अनुरूप USB इंटरफ़ेस प्रदर्शित करता है, चुना जाता है, और यदि आवश्यक हो तो Linux पर अंतर्निहित /dev/ttyUSB* (usbserial मॉड्यूल) या /dev/ttyHS* (hso मॉड्यूल) कैरेक्टर डिवाइस का चयन किया जाता है, यदि डिवाइस को कर्नेल मॉड्यूल द्वारा पहचाना और माउंट किया गया है (नीचे "USB मॉडेम के साथ QCSuper का उपयोग" अनुभाग देखें)।

वैकल्पिक रूप से, Linux पर, किसी दिए गए USB डिवाइस के इंटरफ़ेसों के अनुरूप /dev/ttyUSB* एंडपॉइंट्स को मैन्युअल रूप से बनाना भी संभव हो सकता है, जिनसे आप QCSuper का उपयोग करके --usb-modem /dev/ttyUSB0 जैसे फ़्लैग के साथ कनेक्ट कर सकेंगे (इसके लिए QCSuper को रूट अधिकारों के साथ चलाने की आवश्यकता हो सकती है), usbserial मॉड्यूल का उपयोग करके। इसके लिए, आप निम्न जैसे कमांड का उपयोग कर सकते हैं:``` sudo rmmod usbserial sudo modprobe usbserial vendor=0x05c6 product=0x9091

root@kitploit:~
## USB मॉडेम के साथ QCSuper का उपयोग करना

आप QCSuper का उपयोग USB मॉडेम के साथ कर सकते हैं जो Diag पोर्ट को उजागर करता है, `--usb-modem <device>` विकल्प का उपयोग करके, जहाँ `<device>` Linux पर स्यूडो-सीरियल डिवाइस का नाम है (जैसे `/dev/ttyUSB0`, `/dev/ttyHS2` और अन्य संभावनाएँ) या Windows पर COM पोर्ट का नाम (जैसे `COM2`, `COM3`)।

कृपया ध्यान दें कि अधिकांश सेटअपों में, आपको इस मोड का उपयोग करने में सक्षम होने के लिए QCSuper को root के रूप में चलाने की आवश्यकता होगी, विशेष रूप से सीरियल पोर्ट हस्तक्षेप को संभालने के लिए।

यदि आप नहीं जानते कि `/dev` के अंतर्गत कौन से डिवाइस Diag पोर्ट को उजागर करते हैं, तो आपको इनमें से कई को आज़माना पड़ सकता है। आप ModemManager डेमॉन को रोककर (`sudo systemctl stop ModemManager`) और निम्न कमांड का उपयोग करके इसे स्वतः-पहचानने का प्रयास कर सकते हैं: `sudo ModemManager --debug 2>&1 | grep -i 'port is QCDM-capable'` फिर Ctrl-C दबाएँ।

कृपया ध्यान दें कि यदि आप अपने डिवाइस का उपयोग उदाहरण के लिए ModemManager के साथ ही नहीं कर पा रहे हैं, तो संभावना है कि यह पूरी तरह से सेटअप नहीं है और यह QCSuper के साथ भी काम नहीं करेगा। कुछ संभावित समस्याएँ (gotchas) निम्न हैं:

  * आपने अपने डिवाइस के लिए उचित [मोड स्विचिंग](https://wiki.archlinux.org/index.php/USB_3G_Modem#Mode_switching) कमांड लागू नहीं किया।
  
  * यदि आपने ऐसा डिवाइस खरीदा है जिसमें पहले किसी भिन्न ऑपरेटर का SIM था, तो आपका डिवाइस sim-locked हो सकता है। आपको पूर्व ऑपरेटर से अनलॉक कोड लेकर उसे डिवाइस में जमा करना पड़ सकता है, जैसे कि यह PIN कोड हो: `sudo mmcli -i 0 --pin=<your_unlock_code>`

यदि आपका Qualcomm-आधारित USB डिवाइस डिफ़ॉल्ट रूप से Diag पोर्ट उजागर नहीं करता है, तो आपको Diag पोर्ट सक्षम करने के लिए AT पोर्ट के माध्यम से निम्न टाइप करने की आवश्यकता हो सकती है:```
AT$QCDMG

कृपया ध्यान दें कि एक ही समय में केवल एक क्लाइंट Diag पोर्ट के साथ संचार कर सकता है। यह दो QCSuper इंस्टेंस, या QCSuper और ModemManager इंस्टेंस पर लागू होता है।

यदि आपके सिस्टम पर ModemManager सक्रिय है, तो QCSuper उसे Diag पोर्ट तक पहुंचने से रोकने के लिए गतिशील रूप से एक udev नियम जोड़ने और उसके डेमॉन को पुनः आरंभ करने का प्रयास करेगा, क्योंकि यह वर्तमान में इसे प्राप्त करने का सबसे अच्छा तरीका है। बंद होने पर यह इस नियम को हटा देगा।

समर्थित डिवाइस

QCSuper को निम्नलिखित के साथ सफलतापूर्वक परीक्षण किया गया है:

  • Sony Xperia Z (फोन) - 4G - रूट करने और adb सक्षम करने के बाद सीधे काम करता है
  • Nexus 6P (फोन) - 4G - रूट करने और adb सक्षम करने के बाद सीधे काम करता है
  • ZTE MF823 (यूएसबी मॉडेम) - 4G - डिवाइस को CDC-WDM पर मोड-स्विच करना आवश्यक हो सकता है, डिवाइस को फ़ैक्टरी मोड पर सेट करें, फिर ऊपर बताए गए AT कमांड को निष्पादित करें
  • ZTE MF667 (यूएसबी मॉडेम) - 3G, 2011 - सीधे काम करना चाहिए (मोड स्विचिंग की आवश्यकता हो सकती है)
  • Option Icon 225 (यूएसबी मॉडेम) - 3G, 2008
  • Novatel Ovation MC998D (यूएसबी मॉडेम)
  • ZTE WCDMA Technologies MSM MF110/MF627/MF636 (यूएसबी मॉडेम)
  • ZTE 403zt (यूएसबी मॉडेम) - 4G
  • OnePlus One और 3 (फोन)
  • Andromax A16C3H (फोन)
  • Samsung Galaxy S4 GT-I9505 (फोन)
  • Virtual Access GW1150 - TCP कनेक्शन का उपयोग करके
  • Westermo Merlin 4600 - TCP कनेक्शन का उपयोग करके
  • Fairphone 5 - पूरी गाइड देखें

हालांकि, कैप्चर भाग के लिए, इसका उद्देश्य Qualcomm चिपसेट पर आधारित यथासंभव व्यापक डिवाइसों के साथ संगत होना है।

अन्य काम करने वाले डिवाइस यहां सूचीबद्ध हैं: https://github.com/P1sec/QCSuper/issues?q=label:"confirmed+working"

अपने डिवाइस के सफलतापूर्वक काम करने या न करने की सूचना Github issue खोलकर देने में संकोच न करें।

Diag प्रोटोकॉल का उपयोग करने वाले संबंधित उपकरण

कुछ अन्य ओपन टूल्स हैं जो Diag प्रोटोकॉल के कुछ हिस्सों को लागू करते हैं, विभिन्न उद्देश्यों की पूर्ति करते हैं:

  • ModemManager: Linux पर USB मॉडेम के उपयोग को सक्षम बनाने वाला प्रमुख डेमॉन, USB मॉडेम डिवाइसों के बारे में बुनियादी जानकारी प्राप्त करने के लिए Diag प्रोटोकॉल (जिसे QCDM के रूप में लेबल किया गया है) के कुछ हिस्सों को लागू करता है।
  • SnoopSnitch (विशेष रूप से gsm-parser): मुख्य रूप से एक Android एप्लिकेशन है जिसका उद्देश्य रेडियो लेयर पर संभावित हमलों (IMSI कैचर, नकली BTS...) का पता लगाना है। इसमें कुछ सिग्नलिंग ट्रैफ़िक को PCAP में कैप्चर करने की द्वितीयक सुविधा भी है, जो QCSuper के समान चीज़ प्रदान नहीं करती (उदाहरण के लिए, LTE ट्रैफ़िक GSMTAP में एनकैप्सुलेट नहीं होता, डिवाइस समर्थन भिन्न हो सकता है)।
    • diag-parser: एक Linux टूल जो SnoopSnitch की PCAP जनरेशन सुविधा से व्युत्पन्न है, कुछ हद तक बेहतर, USB मॉडेम के साथ काम करने के लिए डिज़ाइन किया गया।
  • MobileInsight: यह Android एप्लिकेशन Qualcomm और Mediatek डिवाइसों द्वारा आउटपुट किए गए सभी प्रकार के लॉग्स (न केवल सिग्नलिंग जानकारी वाले, बल्कि मालिकाना डिबगिंग संरचनाएं भी) को पार्स करने और उन्हें एक विशिष्ट XML प्रस्तुतीकरण प्रारूप में डंप करने का इरादा रखता है। यह उपयोगकर्ता-उन्मुख PCAP प्रदान नहीं करता (लेकिन पहले कुछ प्रोटोकॉल जानकारी को XML में बदलने के लिए बैकएंड के रूप में Wireshark का उपयोग करता था)।
  • qcombbdbg: Qualcomm बेसबैंड के लिए एक डिबगर जो Option Icon 225 USB मॉडेम के लिए मेमोरी में लिखने की अनुमति देने वाले Diag कमांड का उपयोग करके, एक Diag कमांड को हुक करके स्वयं को स्थापित करता है।
  • OpenPST: Qualcomm डिवाइसों से संबंधित टूल्स का एक सेट, जिसमें एक GUI उपयोगिता शामिल है जो, उदाहरण के लिए, Diag (EFS) के माध्यम से सुलभ छोटे एम्बेडेड फ़ाइलसिस्टम पर डेटा पढ़ने की अनुमति देती है।
  • SCAT: समान GSMTAP जनरेशन क्षमताओं वाला एक टूल, जो इनपुट के रूप में एक सीरियल पोर्ट लेता है, और Samsung Exynos का भी समर्थन करता है।
टूल डाउनलोड करें