#1 Re: Програмування Arduino » Чи можливо записати в Arduino поле, яке не можливо перезаписати. » 2023-11-22 23:23:31

Honey пише:

Піддається дампу, якщо подивитесь опис лок-бітів, побачите, що для нього є свої.

Зрозумів, велике Вам дякую!
Ви мені зекономили дуже і дуже багато часу і нервів!
Хорошого Вам вечора!

#2 Re: Програмування Arduino » Чи можливо записати в Arduino поле, яке не можливо перезаписати. » 2023-11-22 22:19:00

Honey пише:

В ардуіно C++, в optiboot, швидше за все, просто C

Згадав ще одне запитання, а чи можливо задампити бутлоадер? Потрібно виставляти локбітс чи він сам по собі не піддається дампу?

#3 Re: Програмування Arduino » Чи можливо записати в Arduino поле, яке не можливо перезаписати. » 2023-11-22 21:54:48

Honey пише:

Можна взяти код готового і переробити на свій лад, наприклад optiboot. Якщо не хочете розбиратись самостійно, звертайтесь, зроблю)

Дякую за код, в тому то і діло що бажаю все зробити самостійно, але якщо що, звісно звернусь до Вас. smile

Honey пише:

В avrdude ось такий параметр:
-U lock:w:0x3c:m
тут 0x3c значення лок-байту, опис бітів треба дивитися в даташиті на конкретний контролер в розділі Program and data memory lock bits.

Ось це дуже цікава штука, я почитаю і подивлюсь, можливо найду те що треба.

Honey пише:

Ідея в тому, щоб уявити себе на місці того, хто хоче зламати Ваш захист, якщо відкритих Вами даних теоретично достатньо, щоб декодувати прошивку, то хтось її декодує.

Розумію про що Ви, після надсилання повідомлення через пару хвилин розмірковувань я зрозумів що Ви мали на увазі.



Дякую за інформацію, дуже допомогли, я дуже радий що в Україні є люди які можуть підказати на рахунок ардуїно.

Напевно вже останнє запитання, а на якій мові пишеться бутлоадер? На тій самій що й ардуїно, чи там щось по іншому?

#4 Re: Програмування Arduino » Чи можливо записати в Arduino поле, яке не можливо перезаписати. » 2023-11-22 20:00:32

Honey пише:

В якості "секретного алгоритму" може бути будь-який відомий алгоритм + частина ключа, яка буде "секретною".

Дякую за ідею!

Ви вгадали те що я бажаю зробити, вражає)

Але є але, я взагалі не в курсі як написати свій бутлоадер.
2. Що таке взагалі той бутлоадер.
3. EEPROM мені треба читати і перезаписувати, тому що там будуть знаходитись налаштування (в проекті їх має бути достатньо), а ось флеш мені би залочити було б за ціну золота.

Можете будь ласка подетальніше пояснити Вашу ідею? Або можливо є якась стаття, відеоролик чи щось подібне?І питання, якщо signature + calibration на деяких мк одинакові, то це ж погано для цієї ситуації.

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

Ще раз дякую  smile

#5 Re: Програмування Arduino » Чи можливо записати в Arduino поле, яке не можливо перезаписати. » 2023-11-22 18:25:57

Honey пише:

В AVR такої пам'яті (з одноразовим записом) немає.
Є lock-біт, встановлення якого заборонить читати і писати flash і eeprom, цей lock-біт можна стерти лише разом з повним вмістом flash і eeprom.
Є в сукупності 32 байти signature+calibration, які одноразово записані виробником і перезаписати їх не можна, багато з них повторюються в різних чіпах, але всі 32 байти разом можна використовувати для ідентифікації окремих чіпів.

На рахунок ідентифікації.
Мені треба добитись того щоб у кожного чіпа був свій серійний номер. Тобто якщо в мене є два пристрої. І залити дамп прошивки з одного в інший, щоб тобі прошивка не запустилась. Тобто прив'язати прошивку до серійного номера(до мк). Такий собі захист від перезапису.
Можливо є якісь значення в мк які є унікальні для кожного мк? Щоб внести в прошивку данні чисто для цього мк і завелась вона тільки на мк, серійний номер(чи любий інший індефікаційний номер) дорівнює тому, який прописаний в прошивці.

Чи можливо це якимось чином реалізувати? Якщо так, підскажіть будь ласка.

#6 Програмування Arduino » Чи можливо записати в Arduino поле, яке не можливо перезаписати. » 2023-11-22 16:06:09

cheuS1
відповідей: 11

Ардуїно має EEPROM, але його можна змінити. А чи є можливість записати якось змінну, яку навіть після перепрошивки неможливо буде змінити.

Або можливо є якісь відповідні адреси в самій ардуїні. Модель не важлива, якщо це будуть якісь певні "моделі", чи певні "мк" то я куплю їх. Але головне питання чи така опція є, і якщо є то на яких мк?

Буду дуже вдячний за відповідь.

Підвал форуму