STM32 + Gotek Floppy Emulator

Тиви
Ср. 01, 2017 12:04
Привет, ребята,

Я новичок здесь, и я не уверен, может ли ST-Link решить мою проблему, так как я дону’T 100 % понимают функцию. Я постараюсь объяснить, что я хочу сделать. Недавно я купил два X Gotek Floppy Emulator из Китая у двух разных продавцов. Аппаратное обеспечение на 100 % идентично, но прошивка отличается.

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

Gotek Floppy Emulator использует Cortex-M3 STM32F105RBT6 и я думаю, что оба с разрешением для считывания, как я’M вынужден “стереть” Прежде чем я смогу прочитать.

Может ли это устройство ST-Link решить мои устройства или мне нужно посмотреть в другом направлении?

Варгам
Ср. 01, 2017 12:28
Вы не можете прочитать прошивку.

Беннебой
Ср. 01, 2017 12:36
Предоставляет ли поставщик обновляющий прошивку?

Тиви
Ср. 01, 2017 13:13
Варгам написал:Вы не можете прочитать прошивку.

Варгам
Ср. 01, 2017 14:39
Тиви написал:Я думаю, что оба с включенной защитой отчитывания

Беннебой
Ср. 01, 2017, 16:46
Возможно, стоит посмотреть на это (приглушенная, музыка раздражает)

https: // www.YouTube.com/watch?v = xydohciokpg

Rogerclark
Ср. 01, 2017, 20:36
STM32 обладает сильной защитой для чтения прошивки, чтобы остановить фальсификатор, читая двоичный файл прошивки и поместить его в их клонированные продукты.

Извлечение прошивки из чипа не является вариантом для любителей и в основном неэкономична практически для кого -либо еще.

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

victor_pv
Чт, 02, 2017, 14:52
Rogerclark написал:STM32 обладает сильной защитой для чтения прошивки, чтобы остановить фальсификатор, читая двоичный файл прошивки и поместить его в их клонированные продукты.

Извлечение прошивки из чипа не является вариантом для любителей и в основном неэкономична практически для кого -либо еще.

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

Rogerclark
Чт, 02, 2017, 20:48
Виктор, мне нравится идея сбросить код, просто загрузив и запустив из оперативной памяти, но я подозреваю, что STM подумал бы об этой возможности.
Вы можете обнаружить, что вы не можете загрузить в ОЗУ вообще с включенной защитой для чтения.

Я не уверен, сможете ли вы даже загрузить на пустые страницы Flash с включенной защитой для чтения.Это может быть возможно через SWD, но не Bootloaoder.

Кроме того, я не думаю, что вы можете изменить регистры E.глин. ПК при защите чтения включена, на самом деле большинство функций SWD отключено.
Хитрость, где вы меняете адрес ПК, работает на некоторых чипах, включая Nordic NRF51822, но я попробовал его на STM32 несколько месяцев назад, и он не работает.

На самом деле, я попробовал установить компьютер, а затем один шаг в отладчике, и я знаю, что это не работает. Но я не могу вспомнить, если вы можете установить компьютер, а затем, возможно, запустить из этого места.


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

Ахулл
Чт, 02 марта 2017 г., 22:17
Конечно, может быть еще один вариант... а именно написание или адаптация существующего кода, например, -> https: // github.com/keirf/flashfloppy и -> https: // chackaday.com/2013/11/26/Raspber ... PPY-Drive/

... и здесь .... -> https: // cortexamigafloppydrive.WordPress.ком/

Rogerclark
Чт, 02, 2017, 22:43
Энди

Я думаю, ты прав. Использование альтернативной прошивки, вероятно, является единственным жизнеспособным решением

victor_pv
Чт, 02 марта 2017 г. 11:36
Rogerclark написал:Виктор, мне нравится идея сбросить код, просто загрузив и запустив из оперативной памяти, но я подозреваю, что STM подумал бы об этой возможности.
Вы можете обнаружить, что вы не можете загрузить в ОЗУ вообще с включенной защитой для чтения.

Rogerclark
Пт, 03 марта 2017 г. 1:11
Привет, Виктор

ХОРОШО. Это интересно.

Я предполагаю, что вы загружены в ОЗУ с помощью Stlink или, возможно, BMP с помощью GDB ? Или с серийным загрузчиком ?

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

Re: стирание страницы во вспышке при защите чтения

Я понимаю, что ты имеешь в виду. Да. Stlink должен сделать это, так как он может обновлять себя при защите чтения. Но, как вы сказали, вы, возможно, не сможете стереть страницу Flash от SWD, если прочитано защищено


КСТАТИ. Взлом для чтения NRF51 - это запустить GDB, очистить все регистры. Установите ПК на случайный адрес во вспышке.
Одиночный шаг.
Посмотрите на содержимое регистров.
Если инструкция, которая была выполнена, когда вы шагли в одиночку, была инструкцией, которая использует один из регистров в качестве адреса для чтения из памяти, вы получите содержимое 0x000000000 в одном из регистров, а также с перезагрузки и запуска Вектор обычно являются известными значениями, это не займет много времени, чтобы один шаг несколько раз несколько раз, пока вы не найдете значение ПК, которое будет читать из памяти

Но, похоже, это не работает на STM32, так как они, кажется, заперли это, и я думаю, что одиночный ступень может быть отключен с помощью защиты чтения

Если вы можете загрузить на оперативную операцию, прыгнуть в ОЗУ и запустить, то, если инструкции с оперативной памятью могут читать из Flash, система будет широко открыта, даже если вы не сможете настроить UART и т. Д., Потому что вы могли бы просто скопировать куски Flash 1K. в баран и прочитайте куски один за другим в GDB

КСТАТИ. GDB является сценарием.

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

victor_pv
Пт, 03 марта 2017 г., 4:38 утра
Все, что возможно. Я знаю, что это позволяет читать и писать в RAM, и MCU попытался бы запустить из оперативной памяти с правильными уровнями в булавках, я мог видеть, как ПК меняется, но затем потерпел крах и встал в цикл.
Я не думаю, что я позволил прочитать защиту для теста, но у меня может быть, а затем сбои, возможно, произошло из -за защиты.
Мне нужно попробовать еще раз и подтвердить. Мне было просто любопытно об этом, не то, чтобы мне действительно нужно было что -либо читать с защищенного устройства.

Пито
Пт, 03 марта 2017 г. 8:16 утра
Rogerclark написал:STM32 обладает сильной защитой для чтения прошивки, чтобы остановить фальсификатор, читая двоичный файл прошивки и поместить его в их клонированные продукты.

Rogerclark
Пт. 03 марта 2017 г. 9:42 утра
Двоина Stlink был взломан, используя, перехватывая бинарное обновление, не прочитав двоичный файл в STM32 в Stlink

Существует длинная запись в блоге (извините, у меня нет ссылки на руку), в которой описывалась, как был взломан обновляющий ПК (EXE), так что можно извлечь расшифрованную версию бинарного забежать в отладчике.
STM совершил ошибку, не сделав конец к конечному шифрованию. Вместо этого они использовали зашифрованный двоичный файл, который загружается в EXE, а затем расшифровывается в RAM, прежде чем переехать, прежде чем отправлять через USB в Stlink.
Если бы они сделали все дешифрование внутри Stlink, взлом был бы невозможным.

victor_pv
Пт. 03 марта 2017 г., 17:11
Rogerclark написал:Двоина Stlink был взломан, используя, перехватывая бинарное обновление, не прочитав двоичный файл в STM32 в Stlink

Существует длинная запись в блоге (извините, у меня нет ссылки на руку), в которой описывалась, как был взломан обновляющий ПК (EXE), так что можно извлечь расшифрованную версию бинарного забежать в отладчике.
STM совершил ошибку, не сделав конец к конечному шифрованию. Вместо этого они использовали зашифрованный двоичный файл, который загружается в EXE, а затем расшифровывается в RAM, прежде чем переехать, прежде чем отправлять через USB в Stlink.
Если бы они сделали все дешифрование внутри Stlink, взлом был бы невозможным.

Пито
Пт. 03 марта 2017 г. 18:56
Вот моя гипотеза:
«Возможность загрузить новый двоичный файл в флэш -память MCU всегда позволяет читать содержание флэш -памяти MCU»
:)

Беннебой
Пт, 03 марта 2017 г., 19:56
Я не думаю, что ОП возвращается, но это все еще интересная ветка.

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

Rogerclark
Пт, 03 марта 2017 г., 20:32
Ага.

Это превратилось в техническую дискуссию о защите чтения и обратной инженерии, которая все еще находится на теме, насколько я обеспокоен.

Re: Модификация мусорных баков

Я думаю, что вы можете ссылаться на обратную инженерию и дешифрование обновления на базе Java.

Я не уверен, являются ли двоичные файлы, которые можно извлечь из этого обновления, или просто код «приложения», а не загрузчик и приложение.

Я ненадолго возился с обновлением и попытался переименовать двоичные файлы, чтобы он загружал другой двоичный файл в Stlink, но это было не так полезно, так как он не обновил бы ключ, чтобы быть версией с USB Mass Storage и UART, потому что Updater Проверяет размер вспышки, а донги только технически всего 64 тыс. (В действительности они 128 тысяч)
Следовательно, обновляющий считает, что вспышка слишком маленькая.

КСТАТИ. Я знаю, что кто -то взломал Java Bytecode, чтобы позволить загружать лагера, но они не опубликовали взломанную файл Java, только описание того, как они это сделали.

Ddrown
SAT 04 марта 2017 г., 17:25
Меня тоже интересуют эту тему. Я думал о том, как надежно хранить ключ шифрования на MCU. Включение защиты чтения и отключение периферийного устройства отладки кажется хорошими первыми шагами.

Sheepdoll
Сб, 04 марта 2017 г., 8:18 вечера
Я также нахожу эту тему интереса, так как я обратно спроектировал ряд проекта Abandon Ware, где инициаторы мертвы или предварительного возраста. Достаточно интересно, что я только что опубликовал код на этой неделе, чтобы GIT из MIDI -игрока на основе гибких дисков. Этот проект, который я не переводил. Я использовал спецификации из аналогичной Yamaha, Rolland Yamaha. Пианино диск и QRS интерфейсы. Я унаследовал проект 8051, затем после того, как компания не удалось перенести свой код AVR. К тому времени, когда я заставил игрока на работу на гидкие диски были устаревшими.

Я поместил свой устаревший код AVR на GIT вместе с некоторым кодом для интерфейсов драйверов MIDI
https: // github.com/sheepdoll/avrmidihardwareasm.git

Для других может быть интересно увидеть два разных дубля на коде, который работает на одном и том же оборудовании. Первая попытка состояла в том, чтобы создать код, основанный на спецификациях документации по руководству пользователя. А именно свалки sysex. Atmdi88.ASM был результатом. Когда преемник Создателя Совета начал заболеть, а затем скончался, я обнаружил, что онлайн -код обновления, размещенный как Shareware http: // midiator.Millsnovelty.com/программное обеспечение/индекс.HTML

Когда я использую это оборудование в производстве, я взял на себя некоторую поддержку в этом продукте. Не уверен, как долго будет активен вышеупомянутый веб -сайт. Нынешний сопровождающий достигает старшего возраста с семейными и личными медицинскими проблемами. Я обнаружил, что в местном избыточном хранилище хранится оставшиеся запасы программируемых ПЗУ. Я унаследовал оставшееся аппаратное обеспечение, чтобы завершить, если существующие производственные единицы не удастся. До сих пор не удалось критических систем. (Или же они были обновлены до нового оборудования), когда произошел Ардуино;. Теперь можно создать эквивалентное устройство для стоимости одного стартового комплекта. Чипсы Legacy 68HC11 могут индивидуально стоить столько же, сколько и стартовый комплект Ardino или Raspberry Pi.

Поскольку в Интернете выпущен/был код обновления, я смог сбросить .S -файл затем сбросить раздел обновления (который использует MIDI SYSEX сообщений.) Это было сделано с помощью машины Windows 98, которой у меня больше нет. Это привело к тому, что порт с 68HC11 внутри git как octetavr.Асм.

Теперь к теме этой темы эмулятор дисковода -диска. Мой MIDI -гибкий игрок был разработан для взаимодействия с октетом UM0. Это не был эмулятор, хотя я рассматривал кодирование одного. Достаточно интересно, чтобы сменить аппаратную сборку гибких дисков, чтобы работать с этими игроками MIDI, нужно установить ремни на FDA, так же, как Amiga.

Как отмечалось, я унаследовал первое оборудование для последовательности файлов MIDI на основе 8051. Я был нанят, чтобы написать с нуля. Аппаратное обеспечение использовало контроллер дискового диска SMSC37C38, который использовался на большинстве компьютерных дисковых карт и ноутбуков. Я начал с кода драйвера POSIX и должен был имитировать DMA, используя режим регистрации чипа. Теоретически чип может работать в режиме без DMA. При контакте с производством они утверждали, что я и люди, которые не могли написать программное обеспечение, которое я унаследовал, были единственными, кто хотел использовать этот режим регистрации чипа. Что была кремниевая ошибка.

Поскольку я заставил его работать над AVR, я думаю, что на самом деле не было кремниевой ошибки (или я работал вокруг этого.) К тому времени, когда я получил работу (10 лет назад) флопы были устаревшими. Я продал около 5 единиц для возмещения расходов. По -прежнему имеет большую часть подноса чипов контроллера SMSC37C38 и процессоров AT90S8515 с такими же кодом даты 0247. Да 47 -я неделя 2002 года. Это AVR первого поколения, и они имеют скоростную решетку 4 МГц! У меня также есть чипсы SRAM 128 КБ, которые могут быть полезны, если бы я мог понять, как их взаимодействовать. Я почти уверен, что нет рынка для добавления гибкого диска в F103 или F104, хотя, вероятно, это было бы тривиально, используя поддержку на борту для устройств с отображением DMA.

Большинство людей хотят, чтобы наоборот заставил старое оборудование видеть флэш -накопитель как дискету. Тогда есть два способа эмулировать флоппий на встроенных системах. Одним из них является подражание аналогового времени и управления шагом двигателя. Другим будет заменить SMSC37C38, который является устройством регистрации, которое работает аналогично тому, как работают драйверы ЖК -дисплеев Poplar HX8257. В любом случае, что является отображением места для хранения по адресам головки дорожки цилиндров. Там, где начинается развлечение, имеет дело с непрерывными вписками FAT12, а также редкими секторами, которые прыгают, поэтому нужно буферизировать трек и писать вещи в порядке жира, а не файло. Любой хочет, чтобы для Arduino захочется дискет -интерфейс на основе SPI? Я думаю, что у меня может быть какое -то интересное ретро -оборудование для моего печально забытого блога. Щит дискового диска : Twisted:

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


Ничего из этого не является новым. В первые дни жестких дисков и Apple] [Компьютер была компания под названием Corvus, которая создала жесткие диски. Когда яблоко /// и // e вышло. Они сделали привод под соединенный параллельный порт. Мой первый жесткий диск был одним из них. Все 18 мегабайтов. Когда он был подключен к Apple] [Система DOS, это будет выглядеть как стопка дисководов. Каждый со своей собственной дипломом. На Apple /// можно было распределить весь диск, так как у Apple был 5 МБ «профильный диск» (позже использованный на Mac и Lisa) в свободное время я написал драйвер Prodos. Как обычно, к тому времени, когда я получил его на работу, Корвус был банкротом. Я использовал этот диск на 18 МБ на моем Mac, преобразовав его в SCSI. Много места для хранения 1987 года. Я модернизировал HDA несколько раз, сохранив старый случай, пока SCIS не устарел. У меня все еще есть черная пена, Apple] [ROM Driver с его стеклянным окном, задайтесь вопросом, является ли яблоко] [код все еще запрограммирован. Мой код давно потерян, если он не находится где -то в стеке Apple // E Изображения на дисковых дисках, хранящихся на рим -дисках где -то в моем ящике для резервного копирования.

Rogerclark
Сб 04 марта 2017 г., 20:47
DDROWN написал:Меня тоже интересуют эту тему. Я думал о том, как надежно хранить ключ шифрования на MCU. Включение защиты чтения и отключение периферийного устройства отладки кажется хорошими первыми шагами.

Пито
Солнце 05 марта 2017 г. 13:54
Это всегда зависит от потенциального убытка, вызванного взломом ключей. Иногда стоит потратить 100 тысяч долларов - талантливые хакеры сделают это еще дешевле :) (т.е. декапсуляция пакета чипов и стирайте флеш -ячейку, удерживающую бит безопасности чтения).
Таким образом, для самой высокой безопасности вам нужны специальные фишки с контрмерами, встроенными в кремний.
Например, атаки:
http: // www.калькуляция.камера.атмосфера.UK/~ SPS32/NCL_2011.PDF
Сегодня вы можете просто измерить VDD-ток MCU с помощью цифрового инструмента, похожая на оспа, и вы извлекли клавиши в течение нескольких минут.
И здесь - просто послушайте шум ноутбука и получите ключи
https: // www.YouTube.com/watch?v = du-hrui7q30
: шок:

Беннебой
Солнце 05 марта 2017 г., 16:24
Я понятия не имел, что можно было бы пойти по этим длинам, чтобы что -то изменить. Сумасшедший.

Яромир
Солнце 05 марта 2017 г., 16:33
Пито написал: Как они (клонеры) прочитали??

Rogerclark
Солнце 05 марта 2017 г. 8:23 вечера
Яромир написал:Пито написал: Как они (клонеры) прочитали??

Sheepdoll
Солнце 05 марта 2017 г. 9:26 вечера
Я использую программу под названием ExpressPCB для макетов. Пользовательские файлы зашифрованы.

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

Пито
Пн, 06 марта 2017 г., 18:23
Bennehboy ​​написал:Я понятия не имел, что можно было бы пойти по этим длинам, чтобы что -то изменить. Сумасшедший.

Тиви
Пн 13 марта 2017 г. 20:49
Bennehboy ​​написал:Я не думаю, что ОП возвращается, но это все еще интересная ветка.

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

Дуайт
Пт, 04 августа 2017 г. 3:32 утра
Привет
Меня знают эту MB. Я заинтересован в загрузке для них с чипсами STM32105.
Я в основном заинтересован в подражании флопам для устаревших вещей. Мой худший случай
Машина, которая использует 32 провальные секторы 8 дюймов. Я отправил сообщение партнеру во Франции
Это продает различные эмуляторы для ряда более распространенных винтажных машин
Но он, кажется, не заинтересован в моей проблеме.
Я немного играл с Ардуино. Я написал простую игру в поннг, чтобы сыграть на одном
из этих крошечных OLED -дисплеев. Я также написал код, чтобы сделать калибратор маятников маятника.
Это было сделано в C, что я не в этом разбираюсь в.
Я посмотрел на исходный код для одного из загрузочных погрузчиков, когда думал сделать
это, чтобы я мог написать, чтобы вспыхивать без записи.
Я никогда не заканчиваю это, когда делал маленькие (меньшие) адаптеры от 6530 до 6532 для Kim-1
компьютер. Я также написал диагностический код для запуска на доске, которая будет
Подключите к разъему расширения и перейдите с бортового ПЗУ.
Мой первый код состоял в том, чтобы сделать тест на оперативную память без использования оперативной памяти (хитрый на 6502 с 4 регистрами).
Похоже, эта доска - подходящее место, когда у меня есть вопросы.
Дуайт

Rogerclark
Пт, 04 августа 2017 г. 5:21
[Дуайт - Пт. 04 августа 2017 3:32] - Привет
Меня знают эту MB. Я заинтересован в загрузке для них с чипсами STM32105.
Это может работать на F105.

https: // github.com/rogerclarkmelbourne/ ... загрузчик

Он написан для 103, но я уверен, что он работает на 101

КСТАТИ. Вы действительно имеете в виду STM32F105 или вы имеете в виду F103, так как нет досок F105, о которых я знаю

ZMEMW16
Пт, 04 августа 2017 12:03
Aliexpress Search для STM32F105 находит 93, только доска из этого магазина https: // www.aliexpress.com/магазин/121628 ... 7e60z8zfgs
Поиск в магазине находит это
SRP

Дуайт
Сб 12 августа 2017 г., 4:41
У Gotek есть F105. Я не против экспериментировать с этим, как это
был дешево. Это предназначено для того, чтобы быть эмулятором гибких клавиш.
Человек во Франции написал эмуляторы, чтобы бегать по нему для большинства клазических
Компьютер, как TRS80 и Atari 800s.
У меня есть как -то странные мячи. Он больше страдает лицензировать свой
код. Это не очень стимул писать код для машины, которая, чтобы
Я знаю, что существует только 5.
Я ожидаю написать большую часть этого в собрании, но я хотел бы написать
Первый уровень кода в C, а затем переписать необходимые части в сборке
Где скорость более критична. Написание сигналов, чтобы выглядеть как дискет
легкая сторона. Выборка данных MFM на лету и кодировать их в
Эффективная форма данных немного сложнее.
Доска Gotek была дизайном для работы в качестве гибкого. Как знаменитый последний
слова, все, что ему нужно, программное обеспечение.
Дуайт

Дуайт
Солнце 13 августа 2017 г. 1:40
Я смотрел на документ STM3210X, RM0008. STM32F107 имеет другой
USB -порт, который у STM32F103. Это будет проблема?
Дуайт

Rogerclark
Солнце 13 августа 2017 г. 8:17
Вы, вероятно, можете использовать новое ядро ​​STM для F1XX

www.GitHub.com/stm32duino

Тем не менее, они выпустили новую версию для F1 только за последние несколько недель и еще не поддерживают многие доски.

Арпрос
Ср. 8 ноября 2017 г., 17:41
FWIW, я подозреваю, что прошивка HXC за 10 долларов для приводов Gotek - это не случайная прошивка из Интернета, но может быть превосходным продуктом для прошивки, с которой поставляется гостики, с.

Тиви
Пт 09, 2018 10:17 утра
Защита считывания кажется очень сложной, см. Здесь:
https: // www.айзек.Фраунхофер.de/en/фирма ... ведущий.HTML