Перейти к содержанию
    

Посоветуйте по аппаратному usb сниферу

Всех приветствую.

В общем суть проблемы : у меня есть старый компьютер на PowerPC процессоре 2004го года называемый Pegasus2 (не Макинтош) со своей close-source firmware, своей OS и т.д. Компьютер сей имеет только USB1.1 порты. Когда подключаю USB клавиатуру на прямую, то bios сразу видит после основного инита железа что клавиатура есть, и позволяет ее использовать в биосе , ну и собственно когда ось их загружается тоже все ок. Когда подключаю через KVM-switch который переключает Hdmi, usb mouse и usb keyboard между 4мя компьютерами - то на powerpc компьютере в БИОСе клавиатуру не видит, но когда OS стартует и usb stack опрашивает девайсы (это видно по тому что мышка начинает подсвечиваться) - начинает работать.

 

На этом свиче помимо keyboard/mouse usb портов (то есть с добавленным EDID кодом для хоткеев, плавности мышки и т.д.) есть обычный дополнительно usb2.0 стандартный порт без всяких кодов сверху, чтобы если что не так, то подключаешь туда пассивный usb hub и чего куда хочешь пихаешь дополнительно. Т.е. через него все выглядит как "обычное usb железо". Попробовал порты с EDID конечно и пришел к выводу что все более менее норм с остальными компьютерами именно через этот "обычный" usb2 порт когда подключено. И все другие компьютеры с их биосами/фирмварями видят клавиатуру в биосе, но именно на Pegasus2 - нет. Напрямую подключаешь к нему (даже через пассивный usb hub) - все работает в БИОСе. Через КВМ - в БИОСе нет, а как только usb stack сделал опрос устройствам - сразу заработало и уже в операционке все работает.

 

Интересная деталь, что на свиче этом есть 4 лампочки указывающие "online" текущего компа, и я заметил что лампочка эта, загорается не сразу когда компьютер включается, а только когда биосы-фирмваре сканируют usb-bus. Т.е. пока к устройству как-то не обратились, онлайн не горит. Только обратились - загорелся онлайн и клава-мышь работают.  И на pegasus2 пока мы не начали грузить usb stack операционки - онлайн не загорается, соответственно клава и мышка не работают в БИОСе. Но напрямую конечно все работает. Возможно usb-bus опрашивается как-то по древнему, хз.

 

Собственно проблему я вижу в том, что фирмваре Pegasus2 кастомное-кривое или хз какое (напрямую то клава работает так то) , что оно что-то не посылает по usb (или что-то не принимает от свича, хз) из-за этого онлайн не загорается, и клава-мышка не включается пока ось не опросила девайсы.

 

Фирмваре закрытая, кода нет. Даже если ее расковырять, то фиксить usb протокол внутри будет гемор наверняка,  а вот повесить снифер между квмом и усб портом  - можно посмотреть что и как,  и сравнить с теми где онлайн загорается сразу. Может можно таким образом будет найти какие-то управляющие коды которые сигнализируют что мол "Онлайн есть!", и попробовать их послать. Возможно что-то нагородить можно хардварное потом чтобы "фиксить" это дело и чтобы квм видел через усб порт что компьютер онлайн, и соответственно  все работало обойдя их проверки.

Проводв от свича которые идут к компьютерам  - сдвоенные, то есть мышку и клаву берут с 1го usb порта совместно, и HDMI с HDMI. Другими словами с одной стороны провода usb (в свич) , с другой стороны 2 разъема - один в usb (туда мышка-клава) , один в hdmi.  Возможно и это "соединение" мышки с клавой в одной как-то обламывают биос Pegasus'а (но как я сказал выше, когда usb stack оси стартовал и мышка-клава подсветилась, онлайн загорается и все работает). 

 

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

 

И под эти цели, ищу хардварный  USB анализатор в пределах до 500$ , и чтобы можно на Али купить, т.к. теперь это актуально 🙂 

 

Нашел 3 интересных проекта:

https://www.crowdsupply.com/great-scott-gadgets/luna - 200$ , но пока вроде они не запустились, и вряд ли они будут на Али.

https://www.bugblat.com/products/minisniff2/index.html - 100$, но опять же не нашел на Али

https://www.crowdsupply.com/newae/phywhisperer-usb - 250$, но тоже пока в процессе , и тоже Али вряд ли.

 

Если кто-то подскажет именно вот под USB1.1 - USB2.0  хардварный снифер с Али пофиг с какой скоростью, лишь бы сдампить, что квм посылает-принимает когда работает, и что посылает-принимает квм и pegasus2  когда не работает, буду очень благодареню

Спасибо !

 

 

 

Изменено пользователем kas1e
фикс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Советую начать с прочтения спецификации USB, чтобы понимали что это такое и как оно вообще работает. В сети инфы море на эту тему.

Узнаете что такое "USB-host", что такое "USB-device", что такое "процедура энумерации", что такое "классы USB-устройств" и чем они различаются. И т.п.

Без изучения этих вопросов, любой снифер вам будет полезен только для забивания гвоздей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для анализа USB1.1 достаточно хорошего LA с режимом стримминга. У меня есть DSLogic U3Pro32 и DSLogic U3Pro16 от Dreamsource. Третьего дня как раз делал себе USB RNDIS на STM32, нормально записывал обмен. Декодер пакетов так же присутствует. Как это выглядит ниже во вложении. 16ти битный вариант есть на али недорого. Причём, самый дешёвый Plus легко дорабатывается до Pro. К тому же LA будет полезен не только для анализа USB, особенно для старых ПК. Ну и согласен с jcxz по поводу понимания логики что за данные и почему они летают по физической шине.

Снимок.PNG

WhatsApp Image 2023-01-08 at 13.48.57.jpeg

Изменено пользователем HardWareMan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что Вы называете passive hub? В USB спецификации такого понятия нет.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подниму темку. Недавно прикупил вот такое китайское чудо на алике:

WhatsApp_Image_2023-06-23_at_19_24_12.thumb.jpeg.95931b5425f82bf12da49548cf396192.jpeg

У него 3 дырки, 2 для хоста и устройства:

rn_image_picker_lib_temp_bd97aac4-3cd0-41cd-8b96-62864a7b2ec6.thumb.jpg.7db48b35731c94890dd064b1c7177abb.jpg

И 1 для логгера:

rn_image_picker_lib_temp_c28515e5-e6dc-4207-9bcf-49de7970a152.thumb.jpg.56783afbf20d45ed51ab385023af3169.jpg

Таким образом, он может снимать лог с любого USB хоста, не только с того, где запускается сам софт. Поддерживается USB1.1 и USB2.0 все скорости. Софт выглядит так:

WhatsApp_Image_2023-06-23_at_21_10_30.thumb.jpeg.f72693cf3822799e75b7a9464344172c.jpeg

WhatsApp_Image_2023-06-23_at_21_26_52.thumb.jpeg.526489c7f3d5b61dc600a4b2fa2dd4f1.jpeg

Есть несколько встроенных декодеров/анализаторов на практически все стандартные классы. Я думаю многим будет полезен, особенно тем, кто пишет хост на контроллере. Можно фильтровать пакеты в выводе, отключая не нужное.

Софт несколько ограничен, но я думаю, что вероятно это исправят. Например, мне бы пригодилось "вытаскивание" чистых данных CDC, хотя бы на манер как это сделано в WireShark. С другой стороны, лог можно сохранить и он тупо бинарный. Я не разбирался, но вроде как там тупо сырые пакеты, так что особо упорные могут написать свой анализатор.

Ссылку на лот давать не буду, чтобы не сочли рекламой, ищите по названию с первой фотографии, там же ссылка на сайт проекта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, HardWareMan said:

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

А внутренности можете показать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 минут назад, x893 сказал:

А внутренности можете показать ?

Думаю какой-нибудь старый спартан + память + мелкий микроконтроллер.

Стандартная начинка практически всех анализаторов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поиск говорит, что EG4S20NG88 это RISC-V+FPGA. При этом "MONITOR" порт на CH569W настоящий USB3.0, поэтому, наверное, он нормально успевает логгировать USB2.0 на скорости 480МБит/с.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, весьма информативно, я был близок))

Посмотрел на этот CH569, нормальный такой МК:good2:

Впервые вижу (и приятно удивлен, т.к. не так давно искал) SerDes до 1.25 Гбит/с прямо в МК!

Жаль, что RISC-V.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 минут назад, Arlleex сказал:

Посмотрел на этот CH569, нормальный такой МК:good2:

Да, но нет. Это необычный МК (по периферии) с очень хреновой поддержкой со стороны производителя и куцей документацией.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, makc сказал:

...с очень хреновой поддержкой со стороны производителя и куцей документацией

... по отношению к потребителям за территорией Китая?

Тогда это очень печально:boredom:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 минуту назад, Arlleex сказал:

... по отношению к потребителям за территорией Китая?

Тогда это очень печально:boredom:

По отношению ко всем, они в этом плане исключений не делают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...