Code Protection bei Atmel AVR

Gast #12226
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe ein relativ großes Projekt mit Atmel AVR (AT90S4433) gemacht 
und möchte den Code jetzt natürlich davor schützen, dass ihn irgendwer 
ausließt und einfach die Controller klont. Beim PIC ist das ja kein 
Problem - den setzt man beim Programmieren einfach auf "Code Protect". 
In der Software AVR-Studio 3.54 mit angeschlossenem STK500 habe ich 
schon die Fusebits auf "Mode 3: Further programming and verification 
disabled" gestellt. Ja schön, ich kann den Controller zwar nicht mehr 
neu beschreiben - den Code kann man aber trotzdem auslesen und damit bei 
Bedarf so viele Controller klonen wie man will.
Kennt jemand eine Möglichkeit das Teil zu sichern?
...muss doch irgendwie gehen, oder?

Danke schon mal Gruß
Andreas
Gast #12228
Lesenswert?
• ▲
▼
Ja, mit den Lockbits kann man den Controller vor neuem Beschreiben 
schützen. Ist zwar auch irgendwie sinnlos, da die durch ein "Erase 
Device" auch gelöscht werden und das fröhliche Beschreiben weitergehen 
kann, aber naja. Ich kann mir einfach nicht vorstellen, das die 
AVR-Controller sich auf dem Markt so verbreiten konnten, wenn man ihren 
Code noch nicht mal schützen kann.

Gruß Andreas
Gast #12230
Lesenswert?
• ▲
▼
Hallo MNG,

das ist ja gerade das Problem. Die Lock-Bits stehen auf "Mode3:Further 
programming and verification disabled" - auch nach dem Abschalten des 
Controllers und Neustart von AVR-Studio, sie sind also wirklich gesetzt. 
Wenn ich dann auf Flash-Read oder EEProm-Read gehe, kann ich das Teil 
aber trotzdem auslesen - ich verstehe es nicht.

Gruß Andreas
Gast #12233
Lesenswert?
• ▲
▼
Hallo Erwin,

Du hast Recht. Es steht wirklich nur Unsinn im Speicher und das neue 
Beschreiben geht auch viel schneller, als der normale Flash-Zyklus. Ist 
aber auch ziemlich verwirrend, das die Software so tut, als würde sie 
den Code auslesen/schreiben, obwohl sie das gar nicht tut. Das hat 
Microchip ausnahmsweise mal besser gelöst, da steht dann eben: "Device 
is unreadeble, Device is Code-Protected". Also vielen Dank für Eure 
Antworten...

Gruß Andreas
Gast #12234
Lesenswert?
• ▲
▼
Die ganze Sache ist relativ einfach.
Wenn die Lockbits gesetzt sind, kann man den Flash nicht auslesen, bzw. 
man bekommt nur unsinn.
Der Erasebefehl löscht zwar die Lockbits aber auch gleichzeitig den 
internen EEProm und den Flash.

Der Baustein ist dann für widerbescheiben verfügbar.

Gruß MarkusS
Gast #12235
Lesenswert?
• ▲
▼
Hi nochmal,

also so unsinnig sind die Daten, die man zurückgelesen bekommt beim 
genauen Hinsehen garnicht. Es handelt sich nämlich um das Lowbyte der 
jeweiligen Adresse der Programmspeicherzelle: 
0x01,0x02,0x02,...,0xFE,0xFF. Finde ich zwar trotzdem blöd aber 
Hauptsache niemand kann den Programmcode auslesen.
Gruß Andreas

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.