Forum: Mikrocontroller und Digitale Elektronik STM8S Speicher auslesen bei LOC Bit


von Berny (Gast)


Lesenswert?

Hallo,

ich habe zwei identische Netzteile, eines davon defekt und vermutlich 
ist die Firmware nicht mehr in Ordnung. Ich habe von dem defekten 
Netzteil versucht die Daten aus dem STM32S005 zu lesen mit einem ST-Link 
V2, das Read Bit war gesetzt und nach zurück setzen war ohne Warnung das 
Flasch leer.

Oh ...

Ist es möglich das Flash zu lesen mit anderer Hardware oder so? Ich 
möchte einfach nur ein funktionierendes Programm von einem auf des 
andere Labor-Netzteil HSPY portieren. Der chinesische Lieferant schweigt 
sich auf meine Anfrage hin aus......

Alternativ wäre natürlich auch ein neu programmieren möglich, aber ich 
habe noch kein brauchbares Tool gefunden. Vielleicht hat ja von euch 
einer bereits den Controller programmiert und kann mir ein paar Tipps 
geben.

Gruß  Bernhard

von A. B. (Gast)


Lesenswert?

Berny schrieb:
> Netzteil versucht die Daten aus dem STM32S005 zu lesen mit einem ST-Link
War da nicht von STM8 die Rede?

> V2, das Read Bit war gesetzt und nach zurück setzen war ohne Warnung das
Das war wohl eher ROP (Read Out Protection). Die Warnung bzw. der 
Hinweis auf die Funktionsweise steht halt im RM0016 - das muss man halt 
lesen, bevor man am offenen Herzen operiert.

> Flasch leer.
Genau so ist das gedacht ...

> Ist es möglich das Flash zu lesen mit anderer Hardware oder so? Ich
Jein. "Offiziell" ist es unmöglich, so ist es jedenfalls von ST gedacht. 
Es gibt aber durchaus erfolgreiche Angriffe auf diesen Ausleseschutz. 
Geht aber nicht mal so im Vorbeigehen.

von Peter D. (peda)


Lesenswert?

Berny schrieb:
> vermutlich
> ist die Firmware nicht mehr in Ordnung.

Davon höre ich zum ersten mal. Der Flash vergißt nicht einfach mal eben 
so sein Programm. Du hast vermutlich mit dem Programmer ein Erase 
Kommando ausgeführt.

Berny schrieb:
> Ist es möglich das Flash zu lesen

Der Entwickler wird ja das Programm nicht so nebenbei in der Kaffeepause 
entwickelt haben und daher es nicht für umme nachbauen lassen wollen. 
Daher hat er eben die Lockbits gesetzt, um einen Diebstahl zu vereiteln.

von Berny (Gast)


Lesenswert?

A. B. schrieb:
>> Ist es möglich das Flash zu lesen mit anderer Hardware oder so? Ich
> Jein. "Offiziell" ist es unmöglich, so ist es jedenfalls von ST gedacht.
> Es gibt aber durchaus erfolgreiche Angriffe auf diesen Ausleseschutz.
> Geht aber nicht mal so im Vorbeigehen.

Hallo A. B. du hast natürlich recht, ist ein STM8S005. Kannst du mich in 
das Verfahren einweihen?

Gruß Berny

von Berny (Gast)


Lesenswert?

Peter D. schrieb:
> Der Entwickler wird ja das Programm nicht so nebenbei in der Kaffeepause
> entwickelt haben und daher es nicht für umme nachbauen lassen wollen.
> Daher hat er eben die Lockbits gesetzt, um einen Diebstahl zu vereiteln.

Hallo Peter, du hast natürlich recht, ich will ja auch nicht den 
Quellcode mit allem drum und dran, sondern nur ein HEX File und das wird 
auch für andere Geräte als Update angeboten.

@ alle: Mit welchem Tool habt ihr bei der Programmierung in C gerne 
gearbeitet?

Gruß  Berny

von Dieter (Gast)


Lesenswert?

Berny schrieb:
>
> Hallo A. B. du hast natürlich recht, ist ein STM8S005. Kannst du mich in
> das Verfahren einweihen?

Mit z.B. "Voltage Glitching" kann man eventuell den Leseschutz umgehen.

"STM8 Glitch" als Suchbegriff liefert einige Treffer.

von A. B. (Gast)


Lesenswert?

Berny schrieb:
> Hallo A. B. du hast natürlich recht, ist ein STM8S005. Kannst du mich in
> das Verfahren einweihen?

Abgesehen vom dem Hinweis oben auf "STM8 glitch": Die nichtflüchtige 
Konfiguration (u. A. Ausleseschutz) wird bei vielen Controller-Familien 
in einem Teil des normalen Flash gespeichert (teilw. allerdings nicht 
direkt auslesbar/beschreibbar) und unmittelbar nach power-up reset durch 
eine einfache state machine (nicht etwa durch die CPU) in die 
zugehörigen Register kopiert.
Erst diese Registerinhalte sind dann für die Konfiguration maßgebend.
Wenn zu dem passenden Zeitpunkt die Versorgung einbricht, wird die Info 
beim Kopieren verfälscht, mit "Glück" kippt da gerade ein Bit, das den 
Ausleseschutz betrifft ...

Den richtigen Zeitpunkt zu erwischen bedeutet natürlich, dass man lange 
herumprobieren muss, und selbst dann klappt's u. U. nur beim jedem 
tausendsten Versuch.

Die Hersteller könnten das natürlich absichern, indem z. B. das 
Verfälschen eines einzigen Bits nicht reicht sondern z. B. mehrere Bits, 
die nacheinander kopiert werden, nötig wären, aber das bedeutet Aufwand 
...

Z. B. bei den STM32 wird das RDP-Byte zweimal gespeichert, einmal im 
Original, einmal komplementiert, aber dann ist natürlich die Frage, wie 
man bei Nicht-Übereinstimmung verfährt ... Rauchzeichen geben?

von Berny (Gast)


Lesenswert?

Hallo A.B.

Cool und danke für den Tip. Ich versuch es mal auf einem Evalution 
Board.

Bis dann Bernhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.