Files

7.7 KiB
Raw Permalink Blame History

Дампы GANSS ARDOR_Katana (katana-v1)

Сырые данные, на которых построен реверс протокола (см. protocol.md). Устройство: клавиатура GANSS ARDOR_Katana, USB 0C45:8006 (Sonix SN32).

Состав

Файл Что это
color-presets.pcapng / .plain.txt выбор цветовых пресетов в фирменной утилите (статика, RGB-цвета)
bright.pcapng / .plain.txt слайдер яркости (все 15 позиций, диапазон 0x01–0x0F)
animation-speed.pcapng / .plain.txt слайдер скорости анимаций (диапазон 0x02–0x0F)
color-modes.pcapng / .plain.txt перебор всех режимов освещения 1–19 + off
color-toggle-rainbow.pcapng / .plain.txt переключение статики моно/радуга (байт [11])
color-toggle-direction-north-south.pcapng / .plain.txt направление водопада ↑/↓ (байт [11])
color-toggle-direction-east-west.pcapng направление бегущей строки ←/→ (байт [11], без .plain.txt)
keybind-mouse-buttons.pcapng / .plain.txt переназначение LCtrl на 5 кнопок мыши по очереди + возврат на default (канал 04 11)
keybind-editor.pcapng / .plain.txt переназначение Caps на 9 функций текстового редактора по очереди (канал 04 11, записи [02 01 код 00])
keybind-multimedia.pcapng / .plain.txt переназначение Caps на 18 мультимедиа/веб-функций по очереди (канал 04 11, записи [03 usage_le 00])
keybind-hotkeys.pcapng / .plain.txt переназначение Caps на 10 горячих клавиш по очереди: A, Shift+B, Ctrl+C, Alt+D, Meta+E, Esc, F1, Num1, Fn, «Мой компьютер» (канал 04 11, записи [02 маска код 00] + одна мультимедиа)
macros-create.pcapng / .plain.txt запись содержимого двух макросов (канал 04 19)
macros-create-test.xml, test.xml вендорский XML тех же макросов (экспорт утилиты)
macros-set.pcapng / .plain.txt привязка макроса к клавише, однократно (канал 04 11, запись [06, ...])
macros-modes.pcapng / .plain.txt привязка макроса: однократно / N повторов / до останова (канал 04 11)
macros-call.pcapng / .plain.txt нажатие клавиши с макросом: control-канал чист, отработка идёт через interrupt IN
usb-devices-output.txt дескрипторы устройства Linux (вывод usb-devices)

.pcapng — сырой захват USB-трафика; .plain.txt — тот же трафик, распарсенный в лог control-трансферов SET/GET_REPORT.

Как получить pcapng (Windows + USBPcap)

Все операции только на Windows.

  1. Установить Wireshark, при установке выбрать usbpcap.
  2. Установить фирменную утилиту для клавиатуры:
  1. Запустить утилиту, подключить клавиатуру.
  2. Запустить Wireshark, внизу выбрать usbpcap и начать захват.
  3. Произвести нужные операции в утилите настройки.
  4. Остановить захват в Wireshark и сохранить файл <имя>.pcapng.

Захват должен содержать весь трафик сессий: begin → data-begin → payload → commit → save. Полезно сделать в начале захвата одно полное действие, чтобы в дамп попала 1 и более целая транзакция.

При работе в VirtualBox

После установки и запуска фирменной утилиты предоставьте машине доступ к клавиатуре.

Настройте общую папку, чтобы в неё сохранять дампы из виртуальной машины на хост.

Как конвертировать pcapng → plain.txt

На Linux, из корня репозитория:

./misc/analyze_pcap.py raw-data/katana-v1/color-modes.pcapng raw-data/katana-v1/color-modes.plain.txt

Формат строки лога:

SET #N if=I t=T rid=R len=L: <hex-байты>
  • if — номер USB-интерфейса (конфиг-канал = if=0);
  • t — bmRequestType: 21 = SET_REPORT (host→device), a1 = GET_REPORT (device→host);
  • rid — report id (все команды идут с rid=00);
  • GET-пакеты склеиваются по irpid: setup и data приходят разными записями, парсер сопоставляет их автоматически.

Как узнать дескрипторы клавиатуры

На Linux с подключённой клавиатурой:

usb-devices | grep -B 2 -A 8 'Vendor=0c45' > usb-devices-output.txt

В дампе видно: 2 HID-интерфейса (boot keyboard и mouse/consumer), оба под usbhid, interrupt-эндпоинты 0x81/0x82. Конфигурационный канал — feature-репорты интерфейса 0 (эндпоинты управления, не interrupt).

В lsusb устройство подписывается «Microdia Dual Mode Camera (8006 VGA)» — это норма: ID 0c45:8006 чипа Sonix SN32 используется и вебкамерами, и клавиатурами, а база usb.ids знает за ним только камеру. Подробнее — в install.md → «Проверка устройства».

Замечания

  • Имена файлов оригинальные, включая опечатку color-pesets.pcapng (содержимое соответствует color-presets).
  • Расшифровка протокола по этим дампам — в protocol.md, парсер — analyze_pcap.py, рабочая утилита — katana.py (обзор — в scripts.md).