www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Code Protection bei Atmel AVR


Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War da nicht mal was mit Lockbits?

Günter

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: MNG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haste mal probiert ihn wieder auszulesen? Weil, wenn verification 
disabled iss, iss auch kein Auslesen möglich.

MNG

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Günter König (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was benutzt du für einen Programmer?

Günter

Autor: Erwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auslesen kann man sie, aber es steht nur Unsinn im Speicher (FF EE DD CC 
BB usw.), wenn die Lock-bits gesetzt sind.

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: MarkusS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.