Обратные инженерные сигналы USB


8

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

Есть ли способ проанализировать сигналы USB и сделать собственное оборудование для считывания значений с флешки? Какие существуют методы для этого?

Ответы:


7

Да.

Я был очень доволен программным обеспечением от HHD . Несколько лет назад я использовал монитор последовательного порта, чтобы выполнить тяжелый реверс-инжиниринг, и программное обеспечение HHD было хорошо приспособлено для этой работы.

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

Во всяком случае, я получил по USB через голову, потому что я не мог понять, как сделать «драйвер» в Windows. Если вы используете Linux, проект может быть немного проще, поскольку вся эта логика ввода-вывода драйвера низкого уровня легко доступна в коде ядра. Кроме того, Linux 2.6 предлагает некоторые устройства в каталоге / dev, которые можно использовать для прямой отправки / получения на USB-устройство без каких-либо специальных модулей / драйверов. Отлично подходит для развития.


Я заинтересован в некотором реверс-инжиниринге USB-связи MSP430 с панели запуска для Linux под Linux. Знаете ли вы, где я могу найти дополнительную информацию об устройствах в / dev, с которыми я могу напрямую общаться?
pfyon

1
Некоторое время назад я исследовал USB-интерфейс Linux в пользовательском пространстве. (Я закончил программировать только для Windows и OS X) Единственная информация, которую я смог найти об интерфейсе / proc, была в библиотеке libusb (она использует интерфейс) и в исходных текстах ядра (я не помню ссылку или имя файла больше).
2010 года

4

Обратное проектирование USB может быть проблемой; есть много данных для сортировки.

Во-первых, вы должны понять протокол; Я нашел USB в двух словах, чтобы быть довольно хорошим.

Тогда вам нужен какой-то способ сбора трафика и его анализа. Требуется, по крайней мере, некоторое программное обеспечение и, возможно, некоторое оборудование. Я использую аппаратный USB-анализатор на работе, но они дорогие. Я знаю, что можно использовать Virtualbox и собирать USB-трафик в Linux, но я никогда не делал этого. Вы можете начать с Virtual USB Analyzer .


Я использую USB-анализатор Ellisys время от времени. Когда кто-то говорит: «Устройство X дорого», правильный ответ - «По сравнению с чем?» (В одном недавнем случае на работе мне сказали, что что-то в моем коде не работает. Мне потребовалось несколько минут с Ellisys, чтобы доказать, что проблема была где-то еще, и большую часть этого времени занимался подключением запустить тест.)
Джон Р. Штром

2

Я думаю, что вы используете USB-ключи, используемые для защиты программного обеспечения. Они не используют стандартные классы устройств USB HID или MASS STORAGE и обычно реализуют свой собственный протокол и предоставляют собственный драйвер на стороне ПК для связи с ними. Приложение для ПК обычно просит их правильно ответить на отправленное зашифрованное сообщение, или они предоставляют некоторую критическую информацию, которой нет в приложении для ПК, которая необходима приложению для корректной работы. Эти сообщения можно прослушать, как и все остальное через USB, но будьте осторожны, так как вы можете идти по краю. Изучение USB - это одно, но публикация работ, которая нарушает защиту программного обеспечения, не является законной и будет преследоваться по закону. Не делай этого. Я прошу прощения, если я неправильно понял вопрос.


Это незаконно в некоторых странах, но не во всех.
pfyon

Расшифровка трафика в любом случае не будет тривиальной.
Эрик Фризен

2

Вы можете анализировать трафик USB с помощью Wireshark: http://wiki.wireshark.org/CaptureSetup/USB

Wireshark - это бесплатное программное обеспечение, наиболее известное благодаря своим возможностям анализа сети, но с некоторого времени оно также выполняет анализ USB.


Стоит отметить, что для захвата USB в основном требуется Linux. Вы можете захватить трафик Windows USB , запустив Windows на виртуальной машине Linux .
Коннор Вольф

Если вы хотите использовать Windows USB-сниффинг, VMWare может регистрировать USB-трафик на хосте Windows, хотя вам все равно нужно подключить реальное USB-устройство к виртуальной машине.
Коннор Вольф

2

Немногие известные хакеры (которые занимаются разработкой игровых приставок) в настоящее время разрабатывают инструмент для анализа протокола USB. Это называется OpenVizsla. В настоящее время он находится в стадии разработки, но вскоре будет завершен. Это полный проект с открытым исходным кодом.

Проверьте эту ссылку http://www.kickstarter.com/projects/bushing/openvizsla-open-source-usb-protocol-analyzer/posts


Обновленные ссылки для этого проекта: openvizsla.org и github.com/openvizsla/ov_ftdi
Гленн 'devalias'


0

Есть тонны программных и аппаратных решений. Захват данных и анализ не является проблемой, однако вам необходимо понять, что находится на USB-накопителе. Я видел людей, разрабатывающих USB-флешки со встроенными процессорами и шифрованием AES. (Локально зашифровано / расшифровка). Не зная, что именно представляет собой USB-накопитель, сложно понять, что именно вы можете узнать из трафика.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.