Есть ли способ перепрограммировать микроконтроллер USB-накопителя?

Итак, я открывал USB-накопители раньше и понимаю, что они используют общие микроконтроллеры для управления флэш-памятью NAND. Я думал, что если бы их можно было перепрограммировать, чтобы они говорили, запускать приложение при вставке в USB-порт, тогда это могло бы быть полезно для множества приложений (например, для автоматического копирования файлов). Я понимаю, что разные микроконтроллеры могут использовать/не использовать совершенно разные ASM-коды, но существует также проблема того, как с ними вообще общаться (то есть протокол и тому подобное). Возможно ли это? Я слышал о таких вещах, как MP Tools, которые (теоретически) могут низкоуровнево форматировать и сбрасывать диск до заводских настроек по умолчанию, но не могут редактировать какой-либо код, используемый на нем.


person Antonio Escalera    schedule 26.06.2013    source источник
comment
Fpga для флешки будет ужасно дорогой и пустой тратой времени, вы уверены, что они ее используют? А откуда взялся микроконтроллер? Как это связано с fpga или usb-накопителем или флэш-памятью?   -  person old_timer    schedule 26.06.2013
comment
Плохо, я не уверен, является ли это FPGA или микроконтроллером (возможно, это FPGA в некоторых и микроконтроллер в других).   -  person Antonio Escalera    schedule 26.06.2013
comment
После некоторых исследований я считаю, что используются именно микроконтроллеры, потому что, как вы заявили, fpga будет пустой тратой времени. Конкретный MCU, который я собираюсь использовать, это: alcormicro .com/en_content/c_product/ на флешке Duracell емкостью 8 Гб. Эти микроконтроллеры находятся на взломанных дисках ebay, так что явно кто-то понял это.   -  person Antonio Escalera    schedule 26.06.2013
comment
микроконтроллер тоже кажется излишним, но я посмотрю на вашу ссылку, я не удивлюсь, если он программируется один раз ...   -  person old_timer    schedule 26.06.2013
comment
Вот проект для изменения прошивки USB-накопителя (но совместимого только с определенными чипсетами USB-накопителя Phison): github.com /brandonlw/Психсон   -  person Mark    schedule 02.04.2020


Ответы (2)


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

Вы ошибаетесь. Когда вы перепрограммируете микроконтроллер флэш-памяти USB, вы запускаете программу внутри флэш-памяти USB. Вы НЕ заставляете какую-либо программу работать на главном процессоре компьютера. Процессор USB-накопителя взаимодействует с главным компьютером только в ответ на транзакции USB, инициированные хост-контроллером USB на главном компьютере, который находится под управлением ОС.

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

person Ben Voigt    schedule 26.06.2013
comment
А как насчет таких вещей, как USB Rubber Ducky? (hakshop.myshopify.com/products/usb-rubber-ducky) - person Antonio Escalera; 26.06.2013
comment
@AntonioEscalera: Если в вашей ОС есть серьезные дыры в безопасности, вам может даже не понадобиться перепрограммировать микроконтроллер. - person Ben Voigt; 26.06.2013
comment
Хороший вопрос, но что, если мне нужно быстро скопировать что-то / все прямо перед тем, как я разобью свой жесткий диск? - person Antonio Escalera; 26.06.2013
comment
Как бы вы сказали, что я могу изменить то, как сообщается об устройстве? - person Antonio Escalera; 26.06.2013

Нет. Большинство контроллеров, используемых во флэш-накопителях USB, нельзя перепрограммировать, или некоторые или все контакты, необходимые для их перепрограммирования, не доступны.

Открытие приложения при вставленном диске — это поведение, являющееся частью Windows; это вызвано наличием файла (autorun.ini) на диске с определенным содержимым.

person Community    schedule 26.06.2013
comment
Автозапуск/автозапуск фактически не запускает программу (со съемного носителя) в любой версии Windows, выпущенной за последние 12 лет (это просто вызывает появление диалогового окна, предлагающего пользователю запустить программу) - person Ben Voigt; 26.06.2013
comment
Я делал эти глупые вещи с автозапуском раньше с USB-устройств, однако, если бы кто-то мог найти способ получить эмуляцию компакт-диска с этих умных дисков U3, это могло бы работать с автозапуском ... - person Antonio Escalera; 26.06.2013
comment
На самом деле, большинство флэш-накопителей можно перепрограммировать с помощью специальных инструментов поставщиков, которые используют пользовательские USB-команды с хоста. - person Igor Skochinsky; 26.06.2013
comment
Хммм. Любые идеи относительно того, как можно получить такие инструменты? - person Antonio Escalera; 26.06.2013
comment
@Igor Это будут MP Tools? - person Antonio Escalera; 27.06.2013
comment
@AntonioEscalera: вот одна из самых больших коллекций. Используйте это для определения модели контроллера. - person Igor Skochinsky; 27.06.2013
comment
Это инструменты MP, на которые я ссылался ранее, однако они не позволяют использовать пользовательский код. Возможно, требуется реверс-инжиниринг. - person Antonio Escalera; 27.06.2013
comment
Ага! Есть некоторые, которые позволяют создавать эмулированные CD разделы/вещи для автозапуска (недостаток) в Windows. Спасибо! - person Antonio Escalera; 27.06.2013