7.7 KiB
Дампы 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.
- Установить Wireshark, при установке выбрать
usbpcap. - Установить фирменную утилиту для клавиатуры:
- Запустить утилиту, подключить клавиатуру.
- Запустить Wireshark, внизу выбрать
usbpcapи начать захват. - Произвести нужные операции в утилите настройки.
- Остановить захват в 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).
