Jump to content

    

Salamander

Участник*
  • Content Count

    470
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Salamander

  • Rank
    Местный

Recent Profile Visitors

1899 profile views
  1. Ну хорошо, а есть варианты железо+софт, которые можно купить и поставить на свою механику?
  2. А что с ним не так? НУ если в двух словах, чего жизненно насущного он не способен осуществить? Какие ограничения? Грубо говоря, опишите плату, которую он не может "собрать"
  3. Вот и я подумал.... у меня 3д принтер на ремнях - вроде бы ровную гладкую вертикальную стенку печатает. Да и при установке ведь погрешность допустима, за счет выравнивания при оплавлении.
  4. Иногда задумываюсь о самоделке.. Есть же OpenPNP проект - софт, прошивки все есть. Головы, механика, все это покупается и собирается так же как и 3d принтер.... По крайней мере в этом случае точно знаешь, что за комплектующие стоят. Но мы отвлеклись - так это действительно правда, что ремни - не для 0402 и 0201?
  5. Большинство бюджетных да и не очень бюджетных установщиков имеют привод на ремнях. Слышал такое мнение, что для установки компонентов 0402 и 0201 у ременных приводов принципиально низкая повторяемость и нужно искать установщик на ШВП. Правда ли это? P.S. Размышляя на эту тему, я пришел к мысли, что у ШВП может и высокая повторяемость, но может иметь место неравномерность по длине, чего принципиально не может быть у ременного привода (ну разве что шкив по окружности кривой) У кого какой опыт?
  6. Настройки кубовские или, ваши?
  7. Ну а если крайний вариант - серийник является ключом к шифру. И апдейт уникален. Тогда что?
  8. Уникален не апдейт. Уникален бутлодер. Апдейт просто так не установишь в контрлллер, он зашифрован, а потому его можно выкладывать в сети. Расшифровывает прошивку бутлодер, его и нужно защитить. То есть мы делаем уникальным бутлодер, причем делаем это на этапе изготовления, один раз. Спаяли плату, бутлодер считал серийники флешки и контроллера, и поженил их. То есть записал по некоему адресу контрольную сумму из этих серийников. И если контроллер вздумает совершить прелюбодеяние с другой флешкой, то... То есть имеем дамп бутлодера, дизассемблируем и отламываем? В принципе, это просто, если догадаться, что она есть. Одно дело, когда у нас на экране компа выдается требование ввести пароль и мы знаем, что отлаживать и что перехватывать. Другое дело тут. Но это вопрос времени наверное.
  9. Может я чего не понимаю... причем здесь ключи? Вот есть рабочее устройство, способное принять в себя зашифрованную прошивку. Устройство скопировали. Исходный контроллер растворили, добрались до битов защиты, короче, скачали бутлодер, в котором хранится ключ, и записали в новый контроллер. Как сделать, чтоб бутлодер не работал с новым контроллером и с новой флешкой? Я предлагаю сделать проверку серийников флеши и, контроллера. Тогда мало будет извлечь бутлодер, нужно его еще и взломать, чтобы он серийники не проверял. В этом решении где слабые места?
  10. Коллеги, встал такой вопрос. Сразу скажу, мантру "если кому-то очень нужна прошивка, то ее считают", я знаю. Так вот я хочу лишь по максимуму усложнить задачу взломщику, а там как получится. Хочу поделиться своими мыслями и услышать от опытных людей мнение, эффективны ли будут эти меры или толку от них как от навешивания дополнительных замков на гнилые двери. Скажу сразу, что саму прошивку, как таковую, защищать не надо. Д ло в том, что эксплуатация устройства подразумевает обновление прошивки пользователем, скачивание ее из интернета и самостоятельная заливка через бутлодер. А посему первый рубеж обороны - это шифрация файла прошивки и расшифровка ее бутлодером на этапе заливки в контроллер. То есть, по сути, защищать мне придется бутлодер, ибо, если его скачать, то можно будет спокойно заливать зашифрованную прошивку в левые устройства. Однако, вот вам пример как эту защиту обошли наши хакеры https://3dtoday.ru/blogs/jmz/mks-robin-part-two-the-taming-of-the-shrew-firmware/ В чем собственно, моя идея, как я хочу усложнить жизнь нарушителям авторских прав. У меня контроллер stm сопряжен с внешней флешью. Без нее он просто не работает (скорее всего вываливается в HardFault). Есть мысль приучить программу, заливаемую в контроллер, к конкретной флешке, у нее же есть серийный номер. Тогда помимо скачивания прошивки (бутлодера), в случае успеха данного действа, ее нужно будет еще и ломать - вычислять, куда пишется серийный номер флешки, подменять его на нужный. Скажите, это уменьшит вероятность копирования устройства? Или же это второй титановый замок на гнилые двери? Можно пойти дальше - адрес, по которому записан необходимый для сверки серийный номер флешки, случайный. И информация о нем хранится не в контроллере, а во флешке. То есть, программа при загрузке обращается к флешке, узнает у нее адрес, по которому можно прочесть серийник допустимой к использованию флешки и сравнить его с номером, записанным во флеши. Это усложнит жизнь взломщику, или опять таки, это дополнительный замок на гнилые двери? В идеале хочется, чтобы конкретный контроллер работал только с конкретной флешкой. У кого какой опыт?
  11. Так принципиальную схему я и разрабатывал. У меня 32 бита. Все подключены. Когда спаял плату, корректно прочесть данные не получилось. Я достал из ящика плату дискавери. Посмотрел схему. На схеме 32 битная микросхема, у которой задействовано лишь 16 линий данных, остальные резистором притянуты к земле кажется. И в кубе пример для этой платы тоже настроен на 16 бит. Сделал я проект, попробовал пописать в память на плате - ура, работает. Взял свою 32 битную плату, внушил ей, что на ней 16 битная память - ура, работает. Разбирательства почему у меня не работало на 32 битах, я оставил на потом. "Потом" настало вчера, но, как указано в начале темы, я или что-то ковырнул, не подумав или спалил микросхему. О чем собственно и спросил, создав тему, мол может ли возникать хардфаульт при неисправной микросхеме. Из двух возможных вариантов ответа в теме прозвучало два.
  12. А вот с этого момента поподробнее. Я, кстати, когда все работало, игрался с шириной шины (ставил в настройках 16 бит), с форматом записываемых данных (писал 32 битные данные) и у меня не всегда получалось их потом правильно прочесть. Жаль, не проверял тогда - есть ли hard fault. Ответьте на ряд вопросов по адресации sdram. 1. Влияет ли как-то ширина шины sdram, на то, как я буду читать из нее данные программным кодом, обращаясь как единому адресному пространству? Для примера у меня 32 битная сдрам. Начальный адрес 0хc0000000. Я хочу записать 4 байта. Эти 4 байта влезут в одну ячейку памяти, по одному ее физическому адресу. Но в адресное пространство эти байты будут записаны по адресам 0хс000000-0хс0000003, так? А если я запишу 32 битное слово, то в едином адресном пространстве оно так же будет располагаться по адресам 0-3? А если я захочу прочитать 32 битное слово, которое я раньше записал по адресу 0хс0000000, то контроллер возьмет эти данные из одной ячейки микросхемы сдрам, спроецирует их в адрсное пространство по адресам 0-3, а мне выдаст в виде склеенных четырех байт . Если у меня 8битная память, то будет то же самое - в едином адресном пространстве по каждому адресу записано 8 бит, а захоти я прочитать или записать несколько 32 битных слов, мне просто нужно обращаться к адресам, кратным 4м? Просто скажите, правильно ли я понял механизм? 0xc0000000, размер памяти 1м х 32 х 4 банка ГУИ тут ни при чем, он не установлен, я ручками пишу и читаю. Еще вопрос - особо волнует - в настройках сдрам можно выбрать ширину 32 бит. При этом есть еще одна опция byte enable. Она можеть быть отключена, может быть равна не только 32 бита, но и 16 бит? Как это понимать?
  13. А если не отключать fmc, но не инициализировать сдрам, будет фаульт? Ну допустим, что может его вызвать?
  14. И как это приводит к зависанию контррллера? Он ведь, в конечном счете дрыгает ногами. Во время записи обратной информации не получает. Даже ноги свои в режим чтения не переводит. В общем, наверное я сделаю вот что.... отключу fmc совсем. И попробую записать. Sdram, конечно, в этом случае не будет влиять, но вот другой вопрос - не свихнется ли контроллер от попытки обратиться по несуществующему адресу?
  15. Ок, а что тогда может вызывать зависание на, строке