Forum: Mikrocontroller und Digitale Elektronik MSP430 "hacken" - Auslesen des Flash durch partielles Update


von Bastler (Gast)


Lesenswert?

Hallo!

Ich habe hier ein Gerät mit einem MSP430 von TI. Die JTAG-Schnittstelle 
ist deaktiviert, der Bottloader per Passwort (IVT) geschützt. Jedoch 
kann ein Teil der Firmware quasi durch einen eigenen Bootloader 
aktualisiert werden. Ein exemplarisches Update liegt vor. Es scheint an 
eine gegebene Stelle im Flash kopiert zu werden und sichert bei 
Einsprung ein paar Register und springt abhängig von verschiedenen 
Speicherstellen irgendwann wieder zurück in das mutmaßliche 
Hauptprogramm.

Frage an die kenner des MSp430 (kenne mich mehr mit Atmel und Cortex M3 
aus): Haltet ihr es für möglich, ein Programm zu schreiben, was den 
gesamten Flash-Inhalt über die serielle Schnittstelle ausgibt? Evtl. 
vorher Interrupts sperren und den Watchdog deaktivieren? Hat jemand so 
etwas schon mal gemacht?

Grüße
Bastler

von Heinz (Gast)


Lesenswert?

Willst du gegen das 8. Gebot verstoßen?

von Gott (Gast)


Lesenswert?

Das ist doch Reverse Engineering, also eigentlich kein Stehlen, sondern 
nur eine Rückgewinndung des "Quellcodes" aus einem Binärfile

von Heinz (Gast)


Lesenswert?

Gott schrieb:
> Das ist doch Reverse Engineering, also eigentlich kein Stehlen, sondern
> nur eine Rückgewinndung des "Quellcodes" aus einem Binärfile

Den Fall möchte ich dann doch lieber vor dem Jüngsten Gericht verhandelt 
sehen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bastler schrieb:
> Haltet ihr es für möglich, ein Programm zu schreiben, was den
> gesamten Flash-Inhalt über die serielle Schnittstelle ausgibt?

Rein prinzipiell ist sowas nicht nur möglich, sondern trivial.
1
uint8_t *Pointer;
2
3
for (Pointer = FLASH_START; Pointer < FLASH_END; Pointer++)
4
  printf("%04X %02X\n", Pointer, *Pointer);

Voraussetzung sei eine initialisierte serielle Schnittstelle und das 
"umbiegen" von printf auf ebendiese, aber statt printf etc. lässt sich 
natürlich auch jede andere Variante nutzen. Das printf dient hier nur 
als illustratives Vehikel.

Bei den Varianten mit 20-Bit-Adressierung sieht das je nach verwendetem 
Compiler etwas aufwendiger aus.

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.