Go Down

Topic: come proteggere il codice da lettura (Read 4 times) previous topic - next topic

fischio85

Salve mi chiamo Stefano e sono nuovo utente del forum, sarei infinitamente grato se qualcuno riesce a darmi  qualche consiglio su come proteggere da lettura il mio arduino mega 2560.
Chiedo questo perché sto lavorando su un progetto e mi è stato chiesto di rendere il codice non clonabile.
Mi sono documentato un po per quello che sono riuscito a capire, ci sono due byte chiamati high fuse e low fuse, e un byte chiamato lock, che servono a questo scopo.
Questi byte sono impostabili nel file board e vengono modificati attraverso il caricamento del bootloader, correggetemi se sbaglio.
Ho fatto alcuni tentativi di caricamento del bootloader tramite un arduino utilizzato come programmatore isp e uno utilizzato come target, ho seguito passo passo la guida del professor Michele Menniti ma non sono riuscito ad effettuare l'operazione di caricamento.
Per la programmazione isp ho individuato anche un programmatore specifico , che è l' avr pololu.
Mi consigliate di acquistare un programmatore o la cosa è fattibile anche utilizzando arduino come programmatore?
Ogni risposta e ben accetta!!! 

cece99

Questo argomento è già stato trattato, e avevamo detto che arduino è un progetto opensource e quindi il codice deve essere libero e non chiuso. Se vuoi bloccare il codice ti consiglio di usare un altra piattaforma non opensource. (visto che oggi sono felicissimo, ti dò una dritta, anzi, delle parole chiave: avrdude e lock bits)
Ciaoooo
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

leo72

Premessa:
parliamo di FIRMWARE. Il sorgente se non lo distribuisci, non è clonabile. Il FIRMWARE può essere estratto da un microcontrollore e riflashato pari pari. Puoi anche disassemblarlo per recuperare il programma sotto forma di linguaggio macchina (assembly), ma non puoi riottenere in alcun modo il sorgente in linguaggio C/Arduino.

Detto questo, esistono alcuni registri interni chiamati fuse ed altri chiamati lock bit.
I lock bit possono bloccare l'accesso alla memoria, ma in lettura.
Ti consiglio la lettura di questo doc:
http://www.avrfreaks.net/index.php?func=viewItem&item_id=301&module=Freaks%20Tools
Con i lock bit il codice non può più essere estratto dal microcontrollore.

Poi puoi ulteriormente bloccare il chip anche in scrittura, disattivando ad esempio la programmazione SPI ed il pin di reset.
Ti consiglio questo sito:
http://www.engbedded.com/fusecalc
Puoi così trovare i valori per i fuse da impostare.
Occhio che se disattibi il pin di reset, poi ti serve un programmatore detto "H/V" (alta tensione, anche se poi sono 12V) per poterlo sbloccare.

qsecofr

... sono interessanti i metodi che ha descritto leo... però sono molto giuste le cose che ha detto cece.

Nel mio lavoro c'è un noto produttore di macchine (il più grande probabilmente) che si fa fare normali  inverter(ed altro) con firmware proprietario in modo da poter rivendere solo i suoi ricambi...ma io quando prendo una macchina la compro tutta hardware e software e non faccio anche un programma di assistenza obbligatorio a vita... inoltre, dato che le macchine costano diverse centinaia di migliaia di euro e pesano diverse tonnellate trovo abbastanza ridicoli quelli che ti montano le chiavette hardware o 'ste cavolate: per Dio hai una chiave Hardware da 100 quintali attaccata al tuo software: che te ne fai del sofware senza la macchina?
quindi indovina quante macchine ho di questa ditta? conviene?
e quindi tornando alla tua richiesta: sicuro che valga la pena rischiare di far incazzare il cliente dato che tanto il sorgente non lo recuperi comunque?

astrobeed


e quindi tornando alla tua richiesta: sicuro che valga la pena rischiare di far incazzare il cliente dato che tanto il sorgente non lo recuperi comunque?


Dipende dal prodotto, può anche fregartene di non avere il sorgente se puoi recuperare l'eseguibile dal micro e poi riproduci l'hardware, col firmware copiato, e lo rivendi sotto costo perché prodotto in cina.
Ogni tanto sarebbe il caso di ragionare su quello che si dice in merito al copyright e al diritto di non farsi copiare il proprio lavoro.
Non credo che saresti molto contento se, dopo aver sudato le proverbiali sette camice per realizzare un prodotto, arriva il cinesino di turno che ti copia tutto e lo rivende a metà prezzo facendo fallire la tua azienda.

Go Up