USBpcap что это за программа

USBpcap что это за программа

USBpcap что это за программа

Это программы, позволяющие прослушать и декодировать данные, передаваемые по шине USB на интересующее устройство.

Такой инструментарий позволяет отладить программное обеспечение, работающее с USB, разобраться в деталях работы устройства, получить подробную информацию от устройстве USB и т. п.

USBlyzer. Стоит около $200 [1].

USBTrace. Стоит около $195.00 [2].

SnoopyPro-0.22 — бесплатный и весьма толковый снифер [3]. Давно не поддерживается, документация практически отсутствует, но вполне себе работает.

[Как пользоваться Snoopy Pro]

Краткая справка HOWTO, как установить и запустить прослушивание пакетов для произвольного устройства USB.

1. Скачайте архив программы [3]. В архиве один-единственный исполняемый файл SnoopyPro.exe, который не требует установки (очень люблю такие программы!). Распакуйте его в произвольное место (папку) на диске, например в папку c:Program FilesSnoopyPro.

2. Запустите файл SnoopyPro.exe. Появится окно USB Devices со списком установленных в Windows устройств. Выберите в меню File -> Unpack Drivers, затем выберите File -> Install Service.

3. Выберите в списке интересующее вас устройство (оно должно быть подключено к компьютеру). Устройство проще найти, зная VID и PID устройства. В столбце VID/PID списка текст будет как раз содержать эти VID и PID. К примеру, Ваше устройство имеет VID 0x0B9B и PID 0x4012, тогда строка в списке, соответствующая искомому устройству, будет иметь вид «USBVid_0b9b&Pid_4012. «. Щелкните на эту строку правой кнопкой, и выберите Install and Restart.

4. Во втором окне программы SnoopyPro запустится окно лога. Окно лога можно также запустить через меню File -> New. В лог будут накапливаться прослушанные пакеты, и число пакетов в левом верхнем углу пакета будет постоянно увеличиваться.

5. Остановите сбор лога, и тогда Вы сможете его просмотреть. Для остановки сбора лога нажмите кнопку с черным квадратиком.

Собранный лог можно сохранить в файл (File -> Save As. ) или экспортировать в XML (File -> Export. ).

[Free USB Analyzer]

Программа также называется Device Monitoring Studio (т. е. у неё бывают опции для мониторинга не только USB, но и последовательных портов, сети). Опция для мониторинга сети называется USB Monitor.

В бесплатной версии возможности сильно урезаны, но вполне достаточны, чтобы проанализировать обмен пакетами. USB Monitor также имеет 3 платные версии, обладающие дополнительными возможностями.

Установка Free USB Analyzer большой сложности не вызывает благодаря наличию удобного инсталлятора. Однако требуется перезагрузка, и в системе при перезагрузке добавляются значительные изменения. Поэтому рекомендуется перед установкой сделать контрольную точку восстановления системы.

USBpcap что это за программа

Привет, друзья! Приятно видеть, что вы нас читаете и комментируете! Это значит, что пишем не зря. Сегодня я проводил весьма интересные эксперименты и хотелось бы поделиться некоторыми результатами.

Нас интересуют данные, передаваемые по шине USB. Можно ли как-то “прослушивать” этот трафик? Оказывается, можно.

Качаем программу USBPcap, устанавливаем:

Теперь запускаем файл USBPcapCMD.exe с правами администратора:

Запуск USB сниффера

Мониторить мы будем работу с флешкой, которую я заботливо вставил в порт 3 первого корневого хаба. В программе он определился под номером 2. Вводим цифру 2. Затем вводим результирующий файл (1.pcap), в него будет записываться все, что происходит на этой шине.

Немножко модифицируем содержимое текстового файла на флешке:

Запишем наглядную последовательность в файл

После этого завершаем консольное приложение сниффера нажатием клавиш Ctrl+C и открываем файл 1.pcap (появился в каталоге программы) через WireShark:

Команды обмена данными с USB устройством

Ух ты! Какое удобное представление данных! В формате нашего любимого сниффера. Попробуем разобрать некоторые команды. Увы, я не очень хорошо знаю спецификацию USB, поэтому все, что я сейчас буду описывать – это лишь мое мнение, которое может быть неполным или ошибочным. Если кто может уточнить – пишите в комменты.

Периодический опрос USB устройства

Итак, нетрудно заметить, что периодически (примерно раз в секунду) происходит опрос USB устройства:

Мы это видим как Test Unit Ready LUN . Моментально приходит отклик. Таким образом система узнает, что к хабу подключено устройство.

Листаем дальше. А вот и команда Write(10) . Посмотрите, я выделил там красным маркером – есть параметр LBA. Насколько я понимаю, это абсолютный адрес блока. Ниже идёт пакет непосредственно с данными для записи. Приглядимся. Да это же 0-ой сектор! Со всеми вытекающими. Файловой системой (FAT) и окончанием 0x55AA

Команда на запись USB устройства

Ладно. Идём дальше. Следующая команда на запись уже поинтереснее. Я выделил маркером LBA адрес: 0x000001F0 . Надо сказать, что тут у меня было некоторое замешательство. 0x000001F0 адрес – это как раз окончание загрузочного сектора. Зачем что-то писать сразу после него? Тем более, что не совсем соответствуют данные (переданные в следующем пакете) тем, что находятся за 0-ым сектором. Посмотрите, я там выделил синими стрелками. Последовательность 0xE5 , 0x78 , 0x00 , 0x74 ,…. и так далее. И кстати, вот я подумал, а что если адреса LBA – это не совсем то, что указано?

Запись корневого каталога FAT

Мои ожидания оправдались! Путём несложных арифметических преобразований получаем:

0x000001F0 *200 = 0x0003E000

Открываем флешку в WinHEX и идём по адресу. Видим корневой каталог! Чтож, всё логично!

Корневой каталог FAT

Здесь у меня остался некоторый мусор от переименованного файла “Новый текстовый документ.txt“, смещения с 0x0003E000 по 0x0003E07F . Игнорируем. Представим, что 0x0003E080 адрес – это на самом деле 0x0003E000 ! На практике так оно и есть.

Очищеный корневой каталог

Запись данных в файл на флешке

Следующая команда на запись – в блок 0x00000210 . Видим, что записывается последовательность 0x31 , 0x31 , 0x31 , 0x32 , 0x32 ,… Ага!

Умножаем блок на 200:

0x00000210 * 200 = 0x00042000 , переходим на этот адрес:

Содержимое файла на флешке

Ну точно! Это как раз кластер, которые занимает файл 1.txt, и с этого смещения начинается его содержимое 111222333444. Именно ASCII коды этих символов и выглядят как 0x31, 0x31, 0x31, 0x32,…. Всё сошлось!

Смотрим следующую команду на запись:

Запись в таблицу FAT

Интересно. Конечно, у меня есть догадка, но лучше бы её проверить. Видим LBA 0x00000004 .

Умножаем на 200, получаем адрес 0x00000800

Поясняю, F8 – идентификатор носителя (жесткий диск). Далее идёт два байта заполнителя FFFF. А дальше – FFFF – это запись нашего файла. Это означает, что в таблице размещения файлов наш файл занимает один единственный кластер и это первая запись FAT. Посмотрите ссылку, чтобы разобраться.

Следующее смещение на предыдущем скрине – 0x0000000FA . Разбирать не будем, просто скажу, что это вторая копия FAT-таблицы (резервная).

Вот, в общем-то и всё. Надо сказать, я до этого не совсем понимал, как происходит запись на носители типа USB. Теперь это становится понятным. Существуют методические материалы по программированию USB устройств и драйверов, у меня же есть одна замечательная идейка, которую я хочу воплотить в жизнь. Для этого нужно написать небольшую программку, наподобие этого сниффера.

USB Analyzer
Мониторинг USB портов и
анализ активности USB-устройств

USB Analyzer — это простая в использовании программа для мониторинга данных USB-устройств для ОС Windows. Она предлагает простой, но всеобъемлющий режим отображения мониторинга и анализа активности USB-устройств.

USB Analyzer может отслеживать, записывать, отображать и анализировать входящие и исходящие данные между приложениями и любым USB-устройством, подключенным к вашему компьютеру. USB Monitor может успешно применяться при разработке приложений, драйверов USB-устройств или аппаратного обеспечения. Это ваша фундаментальная платформа для эффективного кодирования, тестирования и диагностики USB портов.

Реверс протокола USB устройства

Возникла такая задача.

Есть USB приставка типа осциллографа, и программа под winXP, от его разработчика, которая запускает измерения, устанавливает частоту дискретизации, получает и отображает данные.

Ни исходников программы, ни описания протокола, по которому она с устройством общается, нет.

Возникла необходимость разработки своего приложения род Linux для работы с осциллографом, автоматической обработки данных и передачи результата в OpenScada.

Нужно выяснить, как программа общается с устройством. Думаю использовать сниффер USB. Кто-нибудь имеет такой опыт? Какую лучше программу-сниффер использовать под XP? Как удобнее тестировать полученный таким образом результат под Linux?

USBPcap – USB Packet Capture For Windows

USBPcap is an open-source USB Packet Capture tool for Windows that can be used together with Wireshark in order to analyse USB traffic without using a Virtual Machine.

Currently, the live capture can be done on “standard input” capture basis: you write a magic command in cmd.exe and you get the Wireshark to capture raw USB traffic on Windows.

USBPcapDriver has three “hats”:

  • Root Hub (USBPCAP_MAGIC_ROOTHUB)
  • Control (USBPCAP_MAGIC_CONTROL)
  • Device (USBPCAP_MAGIC_DEVICE)

What you won’t see using USBPcap

As USBPcap captures URBs passed between functional device object (FDO) and physical device object (PDO) there are some USB communications elements that you will notice only in hardware USB sniffer.

  • Bus states (Suspended, Power ON, Power OFF, Reset, High Speed Detection Handshake)
  • Packet ID (PID)
  • Split transactions (CSPLIT, SSPLIT)
  • Duration of bus state and time used to transfer packet over the wire
  • Transfer speed (Low Speed, Full Speed, High Speed)

Moreover, you won’t see complete USB enumeration. You will only see the USB control transfer send to device after the device has been assigned its address.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

пять + девять =