Pages: [1]   Go Down
Author Topic: Controllo sketch  (Read 354 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,

avrei bisogno di effettuare un controllo sullo sketch di cui sto effettuando l'upload sul mio arduino: prima di fare l'upload devo controllare che lo sketch non sia stato "cambiato".
Avevo pensato ad una funzione di hash da calcolare e controllare prima dell'upload.

Potete consigliarmi su come fare ciò?

Grazie
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puoi compilare lo sketch e recuperarti il file .hex dal percorso indicato impostando il verbose per la compilazione dalla preferenze.
Su quel file calcoli l'hash.
Se devi distribuire il codice puoi distribuire l'hex che sarà da caricare con con avrdude da linea di comando perché al momento l'IDE non supporta il comando.

Altrimenti nell'IDE, ti accorgi di modifiche perché sulla tab affianco al nome dello sketch appare il $.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok grazie.

Ma mi sorge una domanda: ho estratto il file .hex, ho calcolato l'hash.

Dopo di che come farebbe Arduino a controllare l'hash e se è uguale a caricare "autonomamente" lo sketch?

Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Arduino non fa nessun controllo sullo sketch in arrivo.
Se vuoi fare una cose del genere devi modificare il bootloader, ma è complicato.
Credo di aver capito che vuoi aggiungere una sorta di firma digitale allo sketch?

Oppure ti crei una tua applicazione per PC per effettuare l'upload e demandi a questa il controllo dell'hash.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si è proprio quello che vorrei fare!

Ti viene in mente un altro modo?
In che senso dovrei modificare il bootloader?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dovresti modificare il bootloader, ovvero quel programma che, se presente, parte all'accensione del micro e ne permette la programmazione via seriale.
Le modifiche riguarderebbero il controllo del file .hex firmato digitalmente, la sua decodifica in memoria e la scrittura sulla flash.
A che pro? E' contro ogni filosofia open source smiley-sweat a parte veramente complesso da realizzare.
Meglio a quel punto che distribuisci direttamente l'Atmega328 col firmware bloccato.

Prova a vedere qui
--> http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=67920&start=0
--> http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=94544&start=0
« Last Edit: July 04, 2013, 11:15:56 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhmm, oppure potrei far leggere ad un altro componente il file .hex con hash e se è uguale fare la conversione per la board.

Ma in tutto ciò: quale componente potrebbe fare ciò e soprattutto come farei a fare l'upload?
 smiley-fat

Logged

Pages: [1]   Go Up
Jump to: