Interdire la récupération du programme installé sur arduino

Bonjour,
Est-il possible d'interdire la récupération du programme installé sur arduino ?
Afin de protégé son travail de la copie .. ?
Merci d'avance !

If you want to continue to write in french use the french subforum

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Oui, il faut utiliser les LOCK BITS :
https://microchipsupport.force.com/s/article/Use-of-Lock-Bits-in-AVR-devices

Oui, mais le travail de tout le monde doit être protégé non pas protégé mais respecté, pas seulement le tien.

Attention au statut des bibliothèques que tu utilises.

Certaines, comme les fonctions wiring/arduino, sont très permissives.
D'autres ne le sont absolument pas : leurs auteurs exigent que si tu les utilises tu dois publier l'intégralité du code source, c'est le contrat que l'on accepte quand on les utilise.

De toute façon la protection est illusoire.

  1. Tu protèges de l'action des outils de programmation "normaux", mais il existe d'autres outils de programmation qui sont capables de faire sauter les protections.
  2. Seul le fichier hex peut être récupéré. Le code source n'est pas récupérable.

Mon avis : quand on utilise du code opensource, autant continuer à rester dans les valeurs morales de l'opensource.

1 Like

@amrbelhadad ,
Es-tu certain que la "valeur" de ton travail nécessite une "protection" contre la copie ?
Je ne pense pas que tu travailles pour Airbus, Thales ou au CEA ...
Si on veut continuer de profiter des connaissances des autres, il est préférable de partager les siennes.

Bonjour
récupérer le fichier Hex sur un projet pour le reprogrammer tel quel est possible facilement sans lock bits.

mais ensuite le transformer en C ... bah ca devient très difficile ! limite le désassembler pour changer quelques trucs est possible pour qq1 qui a un bon niveau. Mais bon s'il sait faire ca il ira aussi vite a refaire le programme.

Donc c'est inévitable de récupérer .hex et le televerser sur d'autre arduino .. ?
Je vous remercie infiniment !

La copie est très compliqué à empêcher.
Mais comme dit plus haut, faut-il encore que ton matériel puisse être largement diffusé et que quelqu'un trouve ton travail tellement intéressent, qu'il passe du temps à chercher tes secrets.

Je dirais que si tu programme un Arduino, il y a peu de chance que tu ais besoin de te protéger et même si tu avais un algorithme si extraordinaire, le fait que le programme soit en langage machine est une protection suffisamment.

Je suis curieux de savoir ce que font tes programme ?

Bonjour,
Ce n'est pas une question d'un travaille très compliqué, mais je compte le vendre plusieurs fois à la même personne ! du coup s'il saura le copier il n'aura plus intérêt de le racheter !

du coup avec un peu de retro engineering ça va être facile à copier s'il trouve le même matériel !!!

A+

Dans ce cas, il y a peu de chance que la personne puisse faire une copie si tu as protéger contre la lecture.
Un client final en règle général et près à acheter une version clonée, mais rarement près à passer du temps pour essayer par lui même de cloner le produit qu'il achète.

Et vaut-il pas mieux vendre une fois que zéro ?

Moi je dirais plutôt, même avec beaucoup de retro engineering, cela ne lui sera pas si simple de copier :slight_smile:

Bonjour
La solution ultime est de passer par un programmateur style TL866 et d'activer les Lock Bit Byte LB1 et LB2, ce qui interdit toute lecture du contenu de ATmega 328. Pour cela il faut programmer seul la puce avec le fichier HEX avec ce programmateur et qui donnera en cas de lecture que des FF mais le programme téléchargé dans l'Atemega fonctionne très bien

L'article proposé en #3 dit :

After the FLASH is programmed, and both Lock bits are set, it is possible to erase the entire FLASH, EEPROM, and the Lock bits, and then reprogram the FLASH and EEPROM. The read security of the FLASH and EEPROM then relies on a complete erase of the FLASH and EEPROM before the Lock bits are erased. To guarantee that this is always the case, the erase procedure follows a certain sequence that ensures that the FLASH and EEPROM will always be erased before the Lock bits are erased.

Si le client tente de désactiver les LB sans savoir ce qu'il fait, il risque d'effacer intégralement la FLASH.

Que pensez vous de la puissance des programmeurs Atmel HV (HC pour High Voltage) ?
Ils balancent des tensions très supérieures au Vcc max des micros.
Ils ne détruisent pas le micro parce qu'ils sont parfaitement calibrés, mais ils remettent tous les fuses dans leur état "sortie usine".

Pour moi, c'est simple :

  • la copie sera toujours possible.
  • la copie ne sera économiquement viable que si le prix de vente est anormalement élevé.
  • si le prix de commercialisation du programme est honnête et si les licences GPL des bibliothèques sont respectées (l'absence de réponse sur ce point que j'ai soulevé ne donne pas confiance,) l'acheteur ne trouvera aucun intérêt à s'emmouscailler à faire des copies.
  • de toute façon soit l'acheteur est une buse en micro-informatique et il n'y a aucun risque qu'il puisse copier quoi que ce soit, soit il s'y connait en micro-informatique et rien ne pourra l'empêcher de faire des copies.
  • sans compter que si le micro est implanté sur un circuit imprimé maison et avec un boîtier CMS aucune IO ne sera accessibles ou ne devra l'être.

Bref discussion totalement inutile, mise en sourdine.

A ma connaissance il est impossible de resetter les LB avec un programmateur "haute tension". La seule façon de les resetter est de reprogrammer le microprocesseur.

Bonsoir
On peut aussi tout couler dans de la résine ... et juste sortir les fils nécessaires.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.