8052 ROM auslesen?

Hallo,

habe einen guten alten 80A52AH von Siemens, dessen ROM ich auslesen möchte. Mit einem Programmiergerät von DataI/O hat es leider nicht funktioniert. Möglicherweise ist das security locking bit gesetzt.

Hat jemand ne Ahnung, wie man trotzdem an den Programmcode kommt? Bei dem alten Ding müsste es doch inzwischen Tricks geben, trotz lock bit auszulesen.

Noch schöne Ostertage wünscht

Patrick

Reply to
Patrick Kaupp
Loading thread data ...

Siemens kenne ich nicht, hatte aber oft mit 8051 Architekturen zu tun. M.W. ist ein Auslesen gesperrt, wenn Security Bits 2 und 3 gesetzt sind. Manchmal wird das nicht gemacht um den Code verifizieren zu koennen. Falls nicht und Du den ROM-Inhalt rausbekaemst, wenn der Entwickler bzw. dessen Firma einigermassen auf Zack waren dann ist der Kram u.U. ueber eine 64 Byte Verschluesselungsmatrix verbarrikadiert, sieht dann wie Marmelade aus wenn man den Schluessel nicht kennt. Ich weiss aber nicht ob der Siemens das hatte.

Viele frotzeln ueber die ollen 8051er, aber die waren schon recht gusseisern vor der Konkurrenz verriegelt.

Ebenfalls frohe Ostern.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Ich sehe da keine reele Chance, wenn das lock bit gesetzt ist.

Du kannst das Ding latürnich aufschleifen und unterm Elektronenmikroskop mit Sonden im ROM rumstochern um rauszukriegen, was drin steht. Aber man kann sich auch von hinten durch die Brust ins Auge schiessen, so dass das Messer aus dem Bauch guckt!

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Hi!

Frag' mal bei denen hier nach:

formatting link
formatting link

--
Thomas Kindler
Reply to
Thomas Kindler

chte.

p =A0

Diese alten Dinger m=FCsste man sich sogar noch im Licht- Mikroskop ansehen k=F6nnen. Ob man mit den kreuz und quer gelegten "Leiterbahnen" allerdings viel anfangen kann, ist eine andere Frage.(BTDT) Gruss Harald

Reply to
Harald Wilhelms

Ziemlich viele MCUs kann man mit Glitching (Vcc oder CLK und andere Signale) zum korrekten Zeitpunkt in interessante und nicht vorgesehene Zustaende bringen die hin und wieder Sicherheitsmechanismen ausser Betrieb setzen. Bei anderen kann man durch Beobachtung des Stromverbrauches Rueckschluesse auf internes ziehen. Dann kann man mit Vcc selbst spielen, im schmalen Bereich zwischen 'laeuft noch' und 'laeuft nicht mehr' finden sich oft interessante Moeglichkeiten.

Hier eine URL von jemandem der dazu einige Papers geschrieben hat:

formatting link

Interessant koennten die hier sein:

formatting link
formatting link

Gerrit

Reply to
Gerrit Heitsch

Aber Du kannst die Ladung im Prom nicht sehen, damit weisst Du zwar, wie es verdrahtet ist, aber noch lange nicht, was drin steht, also wo die

0en und 1en wo und wie verteilt sind.

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Der 8031 lässt sich sehr einfach aus dem Tritt bringen und verhält sich dann völlig irre. Geht besonders einfach, wenn man sich auf den interen Reset verlässt. Kostet Tränen und Schweiss ohne Ende!

Aber ob Du so was sinnvolles aus dem 8031 rausgequetscht bekommst, wage ich arg zu bezweifeln.

Du kommst nicht an den Daten und Adressbus ran und damit bist Du ausgeschmiert. Es gibt 8031 Derivate, die das auch noch scrambeln, dann biste völlig daneben mit der Beschnüffelei.

Ich glaube, da haste eher nen 6er im Lotto, als aus einem 8031 mit gesetztem Lockbit was auszulesen.

Und wer sagt Dir, dass Du alle Programmteile durchlaufen hast und alle Tabellen gesehen hast?

Nö, ich bin sicher, das wird nix.

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Ah, doch.. alles eine Frage des Aufwandes und der Ausstattung. Guck' dir doch die Links zu flylogic an:

formatting link

Sollte es eine gesellschaftlich interessante Anwendung sein, schmeissen die ihre Focused-Ion-Beam Workstations auch gerne mal umsonst an.

Zuletzt zum Beispiel beim Mifare-RFID-Hack geschehen:

formatting link

Wenn die Software erstmal ausgelesen ist, wird die auch reverse-engineered. Soviel "Wirbel auf dem Stack" kannst du garnicht veranstalten -- da sind die entsprechenden Leute von Spielekonsolen, Skype und iPhone schon ganz anderes gewohnt..

--
Thomas Kindler
Reply to
Thomas Kindler

Seit wann hat der 8031 ein internes ROM? Das war doch der 8051, oder?

Das sehen andere Leute beim 8752 z.B. anders:

Processors like the 8752 that can be used with both internal and external memory but that limit the switch between them to resets have been read out using low voltages to toggle the mode without a reset.

( Quelle:

formatting link
)

Will ich gar nicht sondern einfach einen kompletten ROM-Dump ziehen, das reicht. Wirklich sichere Hardware ist sehr schwer zu implementieren, vor allem wenn der Angreifer alle externen Faktoren (Spannung, Temperatur, Takt usw.) kontrolliert. Hat der Angreifer dann noch Zugriff auf schweres Equipment wie die Leute von

formatting link
ist es eher ein Sechser im Lotto wenn dein Chip nicht ausgelesen wird. :)

Gerrit

Reply to
Gerrit Heitsch

Allerdings. Versuche Reverse Engineering zu verhindern gab es schon auf dem C64. Code verschluesselt im RAM und kurz bevor die CPU ihn benutzten muss per genau getimter IRQ-Routine entschluesseln usw. Hat alles nichts geholfen.

Fuer einen erfolgreichen Angriff reicht es, wenn es _eine_ Person auf der Welt gibt die motiviert ist, die Platform kennt und Zeit hat. Dank Internet kann diese Person, wenn sie nicht weiterkommt, mit anderen in Kontakt treten was das Problem fuer dich potenziert.

Gerrit

Reply to
Gerrit Heitsch

Na gut, ich revidiere mein obiges Statement leicht: mit genügend (krimineller) Energie, Zeit und Geld, kann man fast alles knacken.

Aber glaube mir, ein gefädeltes Forth Programm ist eine ganz besondere Herausforderung. Hab hier woanders schon mal beschrieben, wieviel Aufwand es war, eine Konstante rauszufischen aus einem identischen Programm-Teil, bei dem eben nur die Konstante modifiziert war, ansonsten das geiche Source. Und ich kannte mein Programm und es waren keinerlei Tricks drin, die ein reengineering erschwerten. Das einzige Problem waren einige Forth Worte vorher in anderen Modulen, die länger oder kürzer waren und daher kam die fragliche Routine (und fast alle anderen) woanders zu liegen, so dass ein einfacher Vergleich nicht mehr möglich war (gefädelte Listen mit veränderten Addressen...) Es war fast alles verändert. Es hat 2 Tage mit 3 Ings. gedauert, dass mit einen ICE und LA rauszufischen. Ich hab da viel gelernt, wie ich meine Programme zukünftig gegen reengineering aus dem Object schützen kann.

Trick 1: ziemlich früh einen dummy Bereich variabler (zufälliger) Länge und mit Zufallszahlen reinkompileren. Damit verändern sich alle Addressen in allen Listen, die danach kompiliert werden. Also Vergleich geht nicht mehr. Ein Bereich von wenigen 1-16 byte Länge ist vermutlich schon eine extrem hohe Hürde.

Trick 2: Datenwirbel auf den Stacks

Trick 3: Datenwirbel mit Pseudo-Zufallszahlen für Inhalt und Länge

Trick 4: Analyse der Daten Dutzende von Sekunden (also hinreichend unendlich langer Zeit aus CPU Sicht) und dann ein lapidarer 'Bus-Error', nachdem das RAM mit Zufallsmüll überschrieben wurde.

Trick 5: Einsatz von weiteren Zufallszahlen für 4.

Trick 6: Einsatz einer externen Seriennummer (Dallas OneWire...) in Kombination mit 1-5.

Lässt sich nahezu beliebig steigern, ist einfach zu erzeugen, braucht wenig Resourcen bei mir, aber dem Hacker vergällt es das Leben stark.

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Ich meinte 8031 nur als generischen Namen für eine Prozessorfamilie mit sehr vielen Derivaten.

Les ich mir durch, schadet nix, wenn ich schlauer werde :-)

Dann berichte mal von Deinen Fortschritten, ich drück Dir die Daumen.

Ich meinte oben noch speziell gescramblete ROMs, da nutzt der Dump nur wenig.

Schon klar, aber das ist bei einem Forth Programm erst die halbe Miete, das dekompilieren ist auch nicht sooo einfach. Die üblichen Werkzeuge versagen da kläglich: LA und ICE funzt kaum, da Du nur siehst, wie gefädelte Listen abgegrast werden und Du must akriebisch jede Änderung der Stacks analysieren. Und die ändern sich ständig.

Mir sind keine LA bekannt, die gefädelten Code mitsamt Stack Analysen hinbekommen.

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Wolfgang Allingerschrieb: " [...]

Also ich schau mir ganz gern mal 'mixed code' an, um zu sehen, wie der Compiler das umsetzt. Zum einen werden einem gerade als Anfänger viele Dinge viel klarer, zum anderen habe ich neben meinen eigenen im laufe der Jahre auch schon den einen oder anderen Fehler im Compiler gefunden. Wenn der Code dabei so durcheinander gewürfelt wird, ist diese Möglichkeit hinfällig genauso wie der ICE, denn dann sieht man da auch nichts mehr zum debuggen.

Dirk

Reply to
Dirk Ruth

Nein, es bedeutet lediglich, dass die Forth Object praktisch nicht decompilierbar sind, jedenfalls nicht, wenn das dazugehörige dictionary (wird während der Compilierung erzeugt/gepflegt) nicht (mehr) greifbar ist. Wenn Du das Dictionary hast, ist es einfach. Den Decompiler 'SEE' haben einige Forths Systeme, besonders, die auf fetter HW laufen, standardmäßig. Ich brauche SEE name/addr nur, wenn jemand headerless (also ohne Eintrag ins dictionary) gearbeitet hat und die Source aus irgendwelchen Gründen nicht greifbar ist. Ansonsten ist LOOK name oder HELP name Dein Freund, der Dich sofort in die Stellen der Quellen/Doku führt.

Stell Dir ein Wörterbuch vor, in dem alle Schlüsselwörter gelöscht sind, der Rest ist nicht wirklich lesbar. Wenn Du Dir auch noch vorstellst, dass die noch vorhandene Worte dann nur noch Referenzpointer auf vorher definierte Worte sind, die auch wiederum vorher definiert worden... Kriegste eine schwache Vorstellung, wie lesbar Forth Objecte sind. Wenn Du das seltene Glück hast, dass das Forth relativ zu irgendwas referenziert, könnstest Du eine Chance haben. Wie gesagt, mit dem Object muss die virtuelle Forth engine zurechtkommen, nicht der Programmierer. Was für die CPU einfach ist, ist für den Programmierer meist schwierig.

Forth kennt im Prinzip nur Quellen und Objects und hat keinen Linker sondern einen inkremetalen Compiler, der gefädelten Code abliefert.

Das ist sehr effektiv und verhindert IMHO sehr zuverlässig reengineering aus den Objects.

Forth ist eben komplett anders aufgebaut, wie alle anderen Sprachen, die ich je gesehen habe.

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Irgendwo beginnt diese Definitionskette aber mit einer echten Definiton. Mit irgendwas muss deine CPU nach dem Reset schliesslich anfangen.

Gerrit

Reply to
Gerrit Heitsch

[...]

IIRC eine 64-Byte (nicht Bit) Verschluesselung aus einer nicht auslesbaren Code Tabelle. Da ist man einige Zeit mit dem Entschluesseln beschaeftigt. Nicht vergessen, beizeiten die Rente zu beantragen :-)

Ist wahrscheinlich einfacher, den Safe wo der Code hinterlegt ist ausfindig zu machen und mit dem Schweissbrenner anzuruecken ...

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Interessanter als die Laenge des Schluessels ist der verwendete Algorithmus. Da koennten Schwaechen drin sein. AES werden sie bei einem

805x kaum in Hardware implementiert haben.

Gerrit

Reply to
Gerrit Heitsch

Da der 8051 steinalt ist wird es wohl nicht so dolle sein. Der Sinn war ja keine Absicherung gegen Schnueffelei durch die Geheimdienste aller Laender, sondern die Erstellung von Plagiaten soweit zu erschweren, dass es die Konkurrenz sein laesst. Es kommt selbst fuer ethisch fragwuerdige Unternehmen ein Punkt, da macht es weniger Aufwand den ganzen Kram einfach selbst zu entwickeln.

Von den 8051 in meinen Schaltungen ist mir kein einziger Fall bekannt geworden, wo einer geknackt worden waere (in den teils recht kleinen Maerkten waere sowas aufgefallen).

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Wenn Du es schaffst, wie beschrieben das EA-Latch zu umgehen, so daß eigener Code aus dem externen ROM aus dem internen EPROM lesen kann, dann bekommst Du auf diese Art direkt den dekodierten Code - siehe Markus Kuhns Angriff auf den DS5002.

cu Michael

Reply to
Michael Schwingen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.