Alex Taradov разработал недорогой USB-сниффер с открытым исходным кодом, совместимый с популярным анализатором трафика Wireshark и управляемый через командную строку, в обоих случаях захватывающий данные в стандартном формате PcapNG.
Wireshark обладает встроенной функцией захвата USB-трафика на протяжении многих лет, однако этот инструмент не идеален, поскольку не перехватывает низкоуровневые пакеты. Для этой задачи требуется дополнительное аппаратное обеспечение. В прошлом году уже рассматривался сниффер tinysniffer на базе одноплатного Linux-компьютера с WiFi . Это рабочее решение, но его стоимость составляет $199, при этом для обработки скоростей USB 2.0 не требуется применение процессора приложения. Разработка Алекса оптимизирована по стоимости и построена на трёх основных компонентах: микроконтроллере Cypress CY7C68013A на ядре 8051, ПЛИС Lattice MachXO2 LCMXO2 и USB-трансивере Microchip USB3343.
Характеристики USB-сниффера Taradov:
- Микроконтроллер – Cypress CY7C68013A на enhanced ядре 8051 с тактовой частотой 48 МГц, 16 КБ ОЗУ, поддержка USB 2.0 (480 Мбит/с)
- ПЛИС – Lattice MachXO2 LCMXO2-2000HC с 2112 ЛЭ, 16.6 Кбит распределённой памяти, 74 Кбит EBR SRAM; подходят модели Speed grade 5/6, Speed 4 слишком медленная
- USB-трансивер – Microchip USB3343 с интерфейсом ULPI для USB 2.0
- USB-порты
- Правая сторона (Target)
- Порт USB 2.0 Type-A для подключения целевого устройства (например, флеш-накопителя, мыши…)
- Порт USB 2.0 Type-C для подключения к целевому компьютеру
- Левая сторона (Host) – Порт USB 2.0 Type-C для подключения к компьютеру с запущенным Wireshark (это может быть целевой компьютер или другой).
- Правая сторона (Target)
- Прочее
- Светодиод питания, 4 отладочных светодиода
- 2-контактный разъём для «IO_IN». Назначение не указано (возможно, вывод триггера), также замечено, что некоторые производители его не включают.
- Питание – 5В через USB
- Габариты – 59 x 38 мм


Все материалы, включая схемы и разводку платы в KiCad, прошивку МК, Verilog-код для ПЛИС и плагин для Wireshark (исходный код на C и готовые бинарные файлы для Windows и Linux) доступны на GitHub . На сайте taradov.com также можно обнаружить информацию о «Lite»-версии на базе Raspberry Pi RP2040.
Проект USB-сниффера был впервые представлен около двух лет назад. Поскольку он распространяется под разрешительной лицензией BSD 3-Clause, допускающей коммерческое использование, модифицированную (или более раннюю) версию конструкции можно найти на AliExpress за $31.13 (только плата) или $35.03 с корпусом. Это самый дешёвый найденный продавец, но при отсутствии товара в наличии, другие продавцы также предлагают устройство .

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.

