
QCSuper — это инструмент для взаимодействия с телефонами и модемами на базе Qualcomm, позволяющий, среди прочего, захватывать сырые радиочастотные кадры 2G/3G/4G.
QCSuper — это инструмент для работы с телефонами и модемами на базе Qualcomm, позволяющий, среди прочего, захватывать сырые радио-кадры 2G/3G/4G (а на некоторых моделях — 5G).
Он позволяет создавать захваты PCAP с помощью Android-телефона с root-доступом, USB-донгла или существующего захвата в другом формате.

После того как вы его установили, вы можете подключить свой телефон с root-доступом через USB, и его использование с совместимым устройством сводится к:```bash qcsuper --adb --wireshark-live
Или, если вы вручную включили Diag-порт на вашем телефоне (соответствующая процедура может различаться в зависимости от модема и производителя телефона, см. ниже дополнительные пояснения), или если вы подключили мобильный широкополосный USB-модем:```bash
qcsuper --usb-modem auto --wireshark-live
Для связи с базовым процессором телефона используется протокол Qualcomm Diag, также называемый QCDM или DM (Diagnostic Monitor).
Вы готовы сообщить, работает ли ваше устройство или нет? Вы можете открыть Github issue.
Приложения:
Запись в блоге/демонстрация: Представляем QCSuper: инструмент для захвата вашего 2G/3G/4G радиоэфирного трафика на телефонах на базе Qualcomm
Дополнительная документация:
В последнее время QCSuper тестировался и разрабатывался на Ubuntu LTS 22.04+, а также использовался в Windows 11. Он зависит от нескольких модулей Python. Для лучшей совместимости рекомендуется использовать Linux.
Для его использования ваш телефон должен быть рутирован или предоставлять доступ к сервисному порту diag через USB. Чтобы проверить совместимость с вашим телефоном, найдите модель телефона на сайте, например GSMArena, и проверьте, есть ли в нём процессор Qualcomm.
Чтобы открывать PCAP-файлы, создаваемые QCSuper, можно использовать любой Wireshark 2.x–4.x для кадров 2G/3G, но для кадров 4G требуется как минимум Wireshark 2.5.x (и 2.6.x для отдельных NAS-сообщений, расшифрованных из кадров 4G). В Ubuntu в настоящее время доступна достаточно свежая сборка для всех версий.
Декодирование кадров 5G тестировалось в Wireshark 3.6.x и выше и выполняется путём автоматической установки Lua-плагина Wireshark (в %APPDATA%\Wireshark\plugins в Windows или в ~/.local/lib/wireshark/plugins в Linux и macOS). Этого можно избежать, задав переменную окружения DONT_INSTALL_WIRESHARK_PLUGIN=1, если вы хотите отказаться от установки.
Чтобы установить стабильную версию QCSuper в систему из PyPI, выполните следующие команды:```bash
sudo apt install python3-pip wireshark
sudo pip3 install --upgrade qcsuper --break-system-packages
Затем вы можете просто ввести `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 из каталога qcsuper/, используя команду ./qcsuper.py в терминале.
В Linux вы можете установить QCSuper с помощью пакетного менеджера uv, который является современной альтернативой 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
Затем выполните это, чтобы установить последнюю стабильную версию:```bash
uv tool install qcsuper
В качестве альтернативы вы можете установить последнюю разрабатываемую версию с помощью этой команды:```bash uv tool install git+https://github.com/P1sec/qcsuper
Затем вы можете просто ввести это в свой терминал:```bash
qcsuper
Однако если вам нужно запускать qcsuper от имени root, например потому что вы читаете данные с модемного устройства, qcsuper может отсутствовать в $PATH при использовании uv с sudo, поэтому может потребоваться сделать что-то вроде:```bash
sudo env "PATH=$PATH" qcsuper
Если вы хотите принять участие в разработке инструмента, вы можете использовать следующие команды, чтобы загрузить исходный код, а затем создать символические ссылки на QCSuper в `~/.local/bin` в каталог исходного кода:```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 может работать в Windows, но заранее следует убедиться, что приглашение ADB от Google корректно запускается на вашей машине с вашим устройством, а также вручную создать фильтры libusb-win32 (через утилиту, доступную в меню «Пуск» после её установки) в том случае, если ваше устройство должно напрямую подключаться к Diag-порту через псевдо-последовательный USB.
(Обратите внимание: если вы переключаете режим вашего устройства, связанные USB PID/VID могут измениться, и может потребоваться заново выполнить привязку драйверов в утилите создания фильтров libusb-win32 — и/или в диспетчере периферийных устройств Windows, в зависимости от ситуации.)
В Windows вам может понадобиться (в дополнение к драйверам ядра ADB от Google) загрузить и установить USB-драйверы для вашего телефона, соответствующие его модели (это могут быть универсальные USB-драйверы Qualcomm). Поищите в Google инструкции по запросу «модель вашего телефона + "USB driver"» или «"ADB driver"».
Затем нужно убедиться, что вы можете получить доступ к устройству с помощью adb. Учебник о том, как загрузить и настроить adb, можно найти здесь. Команда adb.exe shell (или любой другой исполняемый файл, который вы используете; копия исполняемого файла ADB находится в папке qcsuper/inputs/external/adb внутри QCSuper) должна отобразить приглашение для продолжения.
Затем перейдите по следующим ссылкам (инструмент недавно тестировался на Windows 11 — не гарантируется его работа на Windows 7), чтобы: