Добрый день, закажу скетч, который при включении. А именно в сетап, считывает значения лок битов МК и если чтение внешним программатором ЕЕПРОМ и Флеш залочено, то некоторой переменной присваивается значение 1, иначе 0 и далее в Loop. Скетч нужен для МК трех типов Atmega328P, Atmega2560, Atmega2561 (хотя адреса скорее всего одинаковые)
Вот эту вот статью читал http://we.easyelectronics.ru/Soft/zaschita-ustroystva-ot-vzloma-i-kopirovaniya.html но ничего умнее не пришло в голову
Статья более чем обзорная, хотя и неплохая для понимания общих мест. В плане защиты - всё просто: если будет сильно надо - сломают с вероятностью 100500%, тому пример - nRF24L01, кои китайцы штампуют, как пирожки, и в которых зашиты несколько вариантов ломаной нордиковской прошивки. Плюс - те же платы USB CNC-контроллеров со старыми ломаными прошивками - на али есть. Ломают - всё. Мне представляется, что в условиях штучной разработки (что в основном пересекается с тематикой форума) - проще делать простенькую защиту, привязываясь к уникальному номеру МК (если это возможно, конечно). Ещё более грамотный вариант - открытая демо-версия, можно даже с исходными урезанными кодами (если проект большой, то грамотно его дописать - много времени и ресурсов). А закрытая - пересылается HEX-файлом с привязкой к конкретному экземпляру МК, опять же. Таим образом - потенциальный клиент может и ознакомиться с устройством, и купить полную версию. Специфики, конечно, хватает. Но вариант только с фьюзами - считайте, что его и нет. В описанных вами вводных - это выглядит примерно так: "если сумели слить прошивку с камня, то достаточно поменять значение одного байта в памяти, а ещё проще - поменять условный переход на безусловный", т.е. патч - минимальный. В идеальном случае стоимость взлома должна существенно превышать стоимость разработки подобного функционала с нуля, но и тут, как показывает практика - психологически проще заплатить несколько десятков тысяч за гарантированно работоспособное устройство, чем выкладывать эти же деньги на взлом с неизвестным результатом. К тому же, на текущее время главная задача - это донести свой продукт до потребителя, пмсм. А защита - это уже второстепенно. Потому что есть хороший старый анекдот про неуловимого Джо Ка-то так
Или nop-ом его забить. Этим и занимались в 88-ые --- 90-ые. И не по тому что не хотели купить. Не было возможности купить, не было кредитных карт.
Как сейчас помню, в 90-ые договорился на халтуру - часы точного времени, с использованием GPS для подстройки внутренней цифровой коррекции хода часов компьютера под Windows, отправку точного времени на четыре устройства через модемы. Время до старта / полетное время. Все сделал, провели внутреннее тестирование - заплатили 50%. Отдал на тесты - на объекте. И пропали. В обновлении вставил иногда пробегающую строку - "активируйте ПО". Функционал остался 100%. Через месяц заплатили вторую половину стоимости, и больше не было задержек с оплатой
А со взломом ПО помогали и две вещи: Шифрование кода и использование конвеера процессора для защиты от трассировки. Код зашифрован, а для дешифровки закидываются значения, в ближайшие для выполнения ячейки памяти программы. Если все идет штатно, изменение памяти программ частично влияет на работу программы, так как конвеер все уже загрузил, и часть изменений уже не актуальна. А если код выполняется с использованием отладчика, то все на 100% грузится и выполняется в отладчике. Тут и влетаем с сообщением об ошибке.
Я еще при комуняках так на первую машину заработал - подключил японский сканирующий электронный оже- микроскоп к писюку (286ому!) и сделал режим сдирания- он травит слой чипа, потом сканирует поверхность, снова травит- и хоть прямо на маски для литографии. Тогда в СССР была квазиконкуренция электронщиков в МЭП (минэлектронпроме) и МПСС (мин пром связи).