Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Взаимодействие с USB устройством без API

#c_sharp #c


Имеется usbлоггер/мультиметр, к нему есть драйвера, есть оригинальное ПО, но нет
ни документации, ни API (производитель не поставляет). Стоит задача: написать ПО для
взаимодействия с данным устройством (оригинальное ПО по неизвестным мне причинам не
устраивает руководство). Как можно выцыганить,отковырять, слизать методы обмена с данным
устройством? Реально ли это вообще? Язык предпочтительно C#, но можно и чистый Си (знания
можно восполнить).
    


Ответы

Ответ 1



На английском языке этой теме (реверс-инженерии) посвящен целый сайт Stack Exchange. Конкретно реверс-инжиниринг устройства через USB обсуждается, например, тут: https://reverseengineering.stackexchange.com/questions/2416/how-to-reverse-engineer-simple-usb-device-windows-linux Вкратце: используйте VMWare + Virtual USB analyzer, чтобы поймать и визуализировать трафик между USB-устройством и системой (виртуальной машиной). Сайт Туториал Как альтернатива - еще вот такой тул.

Ответ 2



Для начала, стоит восстановить протокол при помощи USB-анализатора. Например, MMA (но наверняка должны быть и другие). Тут все зависит от сложности протокола: простой протокол можно восстановить быстро, сложный протокол восстановить практически невозможно. Также в деле восстановления протокола может помочь дизасемблирование драйвера. Когда протокол восстановлен - можно использовать драйвер WinUSB для общения с устройством.

Комментариев нет:

Отправить комментарий