Come rendere codice arduino irreversibile?

Ho scritto un programma in VB.NET che riesce a comunicare con arduino tramite porta seriale, dopo svariate ore di lavoro e cross-threading sono riuscito a farli comunicare tutti i bytes senza nessuna perdita con la sicurezza dei frame.
Dopo di che ho scritto uno sketch in arduino, ho compilato e l'ho caricato.

Vorrei fare in modo che il mio codice che ho caricato su arduino, non sia in nessun modo leggibile/reversibile/copiabile.

Perchè per far funzionare il mio arduino lo devo collegare al PC, non lo posso alimentare, ma se uno si impossessa del mio computer potrebbe creare un programma che legge nella EEPROM di arduino quello che io ho salvato, oppure potrebbe leggermi il codice.

Grazie mille. Denis

Perchè per far funzionare il mio arduino lo devo collegare al PC, non lo posso alimentare, ma se uno si impossessa del mio computer potrebbe creare un programma che legge nella EEPROM di arduino quello che io ho salvato, oppure potrebbe leggermi il codice.

Se è per questo qualcuno potrebbe anche prelevare i dati personali e tutte le cartelle presenti nel tuo pc, ma allora la cosa sensata è proteggere il PC e no il codice nella flash del micro.

Io non sono nato ieri, quindi tu vuoi sapere come proteggere il tuo super complicatissimo e preziosissimo codice, allora tu... no non te lo dico, sono contrario. 8)

Cercatelo nel datasheet dell'atmega e nel manuale di avrdude.

Ciao.

Ho scritto un programma in VB.NET che riesce a comunicare con arduino tramite porta seriale, dopo svariate ore di lavoro e cross-threading sono riuscito a farli comunicare tutti i bytes senza nessuna perdita con la sicurezza dei frame.

Cosa ha detto?? :drooling_face: :drooling_face:

No, No, questo me lo dovete proprio spiegare, sono un IGNORANTE! =(

@MauroTec----> Ecco perché non mi considero un programmatore! :wink:

(per chi non avesse seguito il topic di ieri---> http://arduino.cc/forum/index.php/topic,109365.0.html)

Arduino é una piattaforma con licenza common creative dove é aperto tutto, sia HW che SW. L'idea di koporge di bloccare il codice nel Arduino é un idea che é contro l'idea della progetto Arduino che si basa sulla pubblicazione e il dare a disposizione dei propri sketch, delle proprie librerie e della propria conoscenza.

Se seguissi l'idea di koporge non scriverei qua e aiuterei che ne chiede. Il Forum non esisterebbe in questa forma.
koporge sicuramente ha usato il lavoro volontario e gratuito di altri per il suo progetto. Perché allora pensa di avere il diritto di nascondere il suo?

Per questo anch'io sono contrario a "proteggere" il codice sull'Arduino.

Ciao Uwe

Se seguissi l'idea di koporge non scriverei qua e aiuterei che ne chiede. Il Forum non esisterebbe in questa forma.

No Uwe rimani opensource! XD

Lasciatelo stare farà blinkare i led come nessuno ha mai fatto ]:smiley:

un esempio, avevo visto un video youtube di un programmino su arduino che mi avrebbe fatto comodo, ho scritto all'autore e me lo ha mandato chiedendomi di citarlo se lo pubblicavo, oltre a ringraziarlo gli ho detto che lo avrei pubblicato qui appena potevo citandolo con nome e mail nel codice.

questo e' arduino e chi lo usa

reizel:
un esempio, avevo visto un video youtube di un programmino su arduino che mi avrebbe fatto comodo, ho scritto all'autore e me lo ha mandato chiedendomi di citarlo se lo pubblicavo, oltre a ringraziarlo gli ho detto che lo avrei pubblicato qui appena potevo citandolo con nome e mail nel codice.

questo e' arduino e chi lo usa

+255
Ciao Uwe

Non entro nel merito dei motivi che possono spingere a chiedere una determinata cosa, in molti hanno segnalato i motivi per cui a noi utenti del forum tale pratica non piace. Ma ce ne possono essere altri (lavori per una ditta che vuole chiudere il sorgente, sei un militare della NASA, ecc...) per cui mi limito a segnalarti che l'argomento è già stato trattato. A tal proposito, ti segnalo questa discussione:
http://arduino.cc/forum/index.php/topic,97755.0.html
Dove si parla di cosa significa "proteggere" il codice dell'Arduino, e questa, dove si approfondisce molto di più il modo in cui farlo:
http://arduino.cc/forum/index.php/topic,95050.0.html
Dalla pagina 30 circa in poi si parla di FUSE BIT.

Anch'io non entro nel merito della questione, finché uno non dichiara esplicitamente che vuol fare quello che dite siamo nel fumoso campo delle supposizioni; vi ricordo che ai tempi dell'Inquisizione migliaia di persone morirono arsi sui roghi perché qualcuno supponeva che fossero maghi o streghe ed invece erano poveri sventurati, magari con solo qualche rotella fuori posto :disappointed_relieved:
La protezione totale del micro si può fare programmando i fuse per disabilitare la programmazione SPI e poi programmando i lock bits per bloccare i fuse. A quel punto l'unico modo per sbloccare il micro è un chip erase che però cancella il firmware; nessuna possibilità di lettura o scrittura del micro.

Ma questa tecnica è davvero efficiente? Se ad esempio ci si accorge che il micro è protetto non sarebbe sufficiente reimpostare i fuse con un programatore esterno tipo l'avr dragon per togliere le protezioni?
Lo chiedo giusto per curiosità

discorso già trattato, basta usare la funzione cerca. :zipper_mouth_face: :zipper_mouth_face:

certo però poi se uno si impossessa dal pc protrebbe usare un programma di recovery dei dati per leggerti lo sketch che hai scritto al PC... ance se l'hai cancelllato e formattato. Ti consiglio di bruciare l'hard-disk nell'acido o nella lava (avevo visto qualcosa tipo una polvere che raggiunge temperature da bucare da parte a parte PC in pochi secondi)

infine potrebbe aprire il micro e leggerne la flash o la eeeprom con vari dispositivi.

certo che se anche NON metti nessuna protezione, per passare dal codice assebly a quello orginale, sapppic he si fa più fatica che a scrivere il codice da capo.

[troll-mode] ah, questi programmatori cresciuti da mamma microsoft [end troll-mode]

Pelletta:

[quote author=Michele Menniti link=topic=109668.msg824169#msg824169 date=1339538935]
...
La protezione totale del micro si può fare programmando i fuse per disabilitare la programmazione SPI e poi programmando i lock bits per bloccare i fuse. A quel punto l'unico modo per sbloccare il micro è un chip erase che però cancella il firmware; nessuna possibilità di lettura o scrittura del micro.

Ma questa tecnica è davvero efficiente? Se ad esempio ci si accorge che il micro è protetto non sarebbe sufficiente reimpostare i fuse con un programatore esterno tipo l'avr dragon per togliere le protezioni?
Lo chiedo giusto per curiosità
[/quote]
Sì, è estremamente efficiente; il vero blocco non è dato dai fuse ma dai lock bits: i fuse li programmi a piacimento, mentre i lock bits puoi programmarli solo in una direzione, da protezione 0 a protezione massima; in quest'ultimo caso i fuse non sono più modificabili, ma nemmeno i lock bits in quanto non puoi tornare indietro. Allora non sei in grado né di leggere né di scrivere un micro che però funziona regolarmente. Per poter modificare i fuse dei prima resettare i lock bits; quest'ultima operazione la puoi fare SOLO inviando un comando di chip erase che resetta i lock bits, non tocca i fuse, ma elimina definitivamente il contenuto della flash. Ho studiato a fondo la cosa per gli articoli che sto pubblicando da due mesi a questa parte. :wink:

Grazie per la spiegazione, in effetti se fosse stato così facile aggirare il problema nemmeno avrebbe senso mettere le protezioni.

Mike, penso che il titolo Professore ti va stretto: anche mia nonna avrebbe capito se avesse letto questa tua ultima risposta, in 4 righe hai fatto una sintesi mostruosa senza tralasciare nulla... tanto di cappello.
stima++;
complimenti++;

Bhe come primo post non male, pensa al 100° :slight_smile:
Ma perchè ci sono molti fissati di proteggere un chippino giocattolo da furti? chi vi insegue la CIA?
Ma soprattutto sulla eeprom che ci devi scrivere il nome dell'assassino di Kennedy?
Comunque rilassati i cinesi te lo hanno copiato e sprotetto ancora prima che tu lo compili :slight_smile:

PS: Secondo me avresti ottenuto l'informazione presentandoti in un modo diverso, magari un "ciao ... faccio questo e quello..." e facendo capire meglio chi sei... Comunque come ti hanno già detto le info sono presenti su web ti basta google.

lesto:
[troll-mode] ah, questi programmatori cresciuti da mamma microsoft [end troll-mode]

[supertroll] Perché la Apple invece è molto nota per distribuire i sorgenti...vero?[/supertroll] :grin: :grin: :grin:

Da quando è iniziata l'informatizzazione di massa tutti i produttori di software hanno sempre cercato il modo di rendere non riproducibile il proprio lavoro. E' una volontà che non condivido ma che comprendo, alla fine. Ognuno è mosso da sentimenti, interessi, desideri diversi.

Non cominciate con le crociate sistemoperativistiche altrimenti poi vi sgridano e fanno bene, tanto non ricordo mai che uno a fine chiacchiere si sia convertito all'altro, quindi tempo perso inutilmente :grin:

+1 :wink:

oook