Чи можливо витягнути код з дошки arduino?


14

Чи є спосіб експорту коду для ардуїно навіть у шістнадцятковий файл?


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

@ChrisStratton Я слухав розмову про відмову, де вони розмовляли про те, як вона зазнала поразки. Я не можу згадати, який це був, але Google може запам'ятати.
Hair_of_the_Dog

Він зазнав поразки для деяких мікроконтролерів, а для інших (принаймні, для відомих громадськості, за винятком фізичних розсічень) ще для інших.
Кріс Страттон

Так, я впевнений, що це було розсічено.
Hair_of_the_Dog

Відповіді:


7

Перевіряючи вихідний код завантажувачів Arduino за посиланням https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders, схоже, вони насправді підтримують функцію перезавантаження stk500 для флеш-пам’яті, так що ви можете досягти своєї мети за допомогою такої клієнтської програми, як avrdude.

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

Якщо ви не можете отримати доступ до завантажувача (проблеми з перезавантаженням або відсутні непошкоджені завантажувачі), можливо, ви зможете це зробити із зовнішнім програмістом, за умови, що налаштування запобіжника безпеки цього не заважають.


1
Виявляється, підтримується не лише зворотний зв'язок, але avrdudeповедінка перевірки за замовчуванням покладається на нього, оскільки воно працює, читаючи назад буфер і виконуючи порівняння на ПК. Таким чином, кожен, хто коли-небудь завантажував код у Arduino на базі ATmega, дозволяючи IDE викликати avrdudeз конфігурацією за замовчуванням, також неявно його прочитав.
Кріс Страттон

5

Так, я успішно витягнув завантажувальне ядро ​​з однієї плати Arduino через ISCP і перемістив її в іншу. Запобіжники безпеки не встановлені. де буде працювати avrdude. Тоді я використовував AVR Studio зі STK500, оскільки він мав графічний інтерфейс, і мені не потрібно було вивчати всі avrdude комутатори. Або буде працювати.

Встановлення запобіжника перемагає відкритий код. Це сказало, що завантажувальне ядро ​​передбачено в IDE. .. \ Arduino \ hardware \ arduino \ bootloaders \ atmega8 \ ATmegaBOOT.hex разом з іншими варіантами чіпів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.