Bloccare il codice

Salve, sono a porvi una domanda. E' possibile bloccare in lettura la flash in modo che non sia possibile estrapolarne il codice?

Per bloccare la lettura e la sovrascrittura del codice ci sono due Fuse-Bit da mettere.
Per questo hai bisogno di un programmatore ISP.

Ciao Uwe

Quindi non è possibile farlo attraverso il software arduino?

No, attraverso il IDE di Arduino non é possibile.
Ciao Uwe

Ok, grazie mille

In teoria si può fare con AVR dude però non saprei dirti come e se arduino co caricato ISP possa programmare il micro

Janos:
Salve, sono a porvi una domanda. E' possibile bloccare in lettura la flash in modo che non sia possibile estrapolarne il codice?

Domanda strana... ma non è che per caso non vuoi che qualcuno dumpi il tuo codice ricopiandolo?
Se è per questo, non puoi avere una protezione totale, qualcuno potrà sempre fare un dump ed estrarre il firmware ottenendo il codice macchina del tuo programma anche se poi dovrà ricostruire il listato in assembly prima di poterci fare qualcosa.

leo72:
Se è per questo, non puoi avere una protezione totale, qualcuno potrà sempre fare un dump ed estrarre il firmware ottenendo il codice macchina del tuo programma

Non è così, se attivi i vari lock bits dei fuse, e lo puoi fare solo tramite un vero programmatore ISP e non con lo sketch ISP, puoi proteggere in vari modi la flash fino a renderla totalmente inaccessibile ad una lettura esterna, è una caratteristica indispensabile per l'uso industriale dei micro.

Scusa, ma a quali fuse ti riferisci?
Io so che puoi bloccare la programmazione via seriale per evitare sovrascritture, non è un "lock" definitivo questo. Esistono altri fuse?

E poi questi fuse di cui parli, una volta impostati, possono essere disattivati in un secondo tempo o sono permanenti?

astrobeed:

leo72:
Se è per questo, non puoi avere una protezione totale, qualcuno potrà sempre fare un dump ed estrarre il firmware ottenendo il codice macchina del tuo programma

Non è così, se attivi i vari lock bits dei fuse, e lo puoi fare solo tramite un vero programmatore ISP e non con lo sketch ISP, puoi proteggere in vari modi la flash fino a renderla totalmente inaccessibile ad una lettura esterna, è una caratteristica indispensabile per l'uso industriale dei micro.

E come si fa ? O.o

leo72:
Scusa, ma a quali fuse ti riferisci?
Io so che puoi bloccare la programmazione via seriale per evitare sovrascritture, non è un "lock" definitivo questo. Esistono altri fuse?

Ci sono anche quelli per bloccare la lettura della flash, una delle cose che trovi scritte nelle caratteristiche generali degli AVR è questa:


– Programming Lock for Software Security


Basta che imposti il modo LB a 3 (LB1 e LB2 a 0) e non puoi più ne leggere ne scrivere la flash se prima non esegui una cancellazione totale.
Nessuna industria utilizzerebbe un micro dal quale chiunque può estrarre il software per poter clonare altri micro.

E poi questi fuse di cui parli, una volta impostati, possono essere disattivati in un secondo tempo o sono permanenti?

Ovvio che si, però siamo sempre al discorso che serve un vero programmatore per AVR.

E poi questi fuse di cui parli, una volta impostati, possono essere disattivati in un secondo tempo o sono permanenti?

Possono essere resettati ma quello comporta la cancellazione del programma nella flash.

Nel senso puoi metterre un altro programma ma non ricavarne quello che é protetto.

Ciao Uwe

uwefed:

E poi questi fuse di cui parli, una volta impostati, possono essere disattivati in un secondo tempo o sono permanenti?

Possono essere resettati ma quello comporta la cancellazione del programma nella flash.

Nel senso puoi metterre un altro programma ma non ricavarne quello che é protetto.

Ciao Uwe

Ecco, è questo a cui volevo arrivare. Quindi, una volta impostati questi fuse, il micro non è leggibile. Se uno tenta di disattivare questa protezione, cancella contemporaneamente la Flash. Quindi si può recuperare il micro per un utilizzo successivo ma non si può recuperare il contenuto della Flash.

Tornando al problema iniziale come sarebbe possibile farlo avendo un programmatore isp....?