Reverse Engineering Zahlendarstellung im EEPROM knacken, wer schafft's

OP #2263431
Lesenswert?

Hallo zusammen,

ich habe ein Problem. Ich moechte gerne bei einer bestehenden Platine 
die Funktion und die Daten verstehen.
(Es geht um einen alten Motorradtacho den ich umbauen moechte.)

Die verbauten µCs sind von unbekanntem Typ und steuern sowohl LCD als 
auch das Drehspulinstrument an.

Einiges an Daten wird in einem seriellen EEPROM gespeichert.
Das hier gespeicherte Zahlenformat ist mir aber nicht verstaendlich.

Z.B.:
Wenn ich den Tageskilometerzaehler zuruecksetze, werden insgesamt zwölf 
16bit Worte geschrieben. Hierbei scheint es sich um 4 Werte zu handeln, 
die aus Sicherheitsgruenden je 3 mal gespeichert werden.

Beispiel:
Tageskilomterzaehler = 132,1 km
Wort 1:  65514
Wort 2:  61667
Wort 3:  34509
Wort 4:  65533

setze ich ihn jetzt zurueck (auf 0km) wird geschrieben:
Wort 1:  65514
Wort 2:  65514
Wort 3:  32666
Wort 4:  65533

Falls jemand versteht, wie aus den 4 Worten die 132,1 bzw. die 0,0 wird, 
wuerde ich mich sehr freuen, wenn er mir das erklaeren wuerde.

MfG,

Balze aka AVR Noob
Gast #2263448
Lesenswert?

Avr Noob schrieb:

> Falls jemand versteht, wie aus den 4 Worten die 132,1 bzw. die 0,0 wird,
> wuerde ich mich sehr freuen, wenn er mir das erklaeren wuerde.

Kannst du das noch einmal oder zweimal wiederholen? Natürlich mit viel 
weniger Tageskilometern. Eine Runde um den Block. Das gibt evtl. mehr 
Aufschluß.
OP #2263469
Lesenswert?

Wilhelm Ferkes schrieb:
> Eine Runde um den Block.

Hallo Wilhelm,

wenn ich das koennte, wuerde ich das sehr gerne tun.

Leider liegt der Tacho auf meinem Schreibtisch und ist auch nicht ganz 
vollstaendig :)
(Ist aus einem Unfallmotorrad, ich habe den Tacho geschenkt bekommen und 
moechte ihn nun recyclen.)

Das einzige was ich noch zu bieten habe ist, dass ich einen zweiten 
Block gefunden habe, der dem ersten aehnelt und vermutlich den zweiten 
Tageskilomterzahler repraesentiert (124,4km).

Wort 1:  65514
Wort 2:  63120
Wort 3:  42687
Wort 4:  65533

Ich kann diesen auch noch zuruecksetzen wenn es hilft. (Dann waere ich 
mir ueber die Position des Blockes sicher)

Ich habe gestern abend bereits versucht mir ein Tachosignal mit einem 
andern µC zu generieren, aber der Tacho reagiert hier sehr empfindlich 
und meldet eine Stoerung. Am WE werde ich es ein weiteres mal mit dem 
original Motorradgeschwindigkeitssensor (und 'ner Bohrmaschiene :) 
)versuchen.

Vielen Dank.

MfG,

Balze
Angehängte Dateien:
Gast #2263547
Lesenswert?

Kein Muster entdeckt. Hatte IEEE754 vermutet.

 132,1 Km   0 Km         124,4 Km

 65514 FFEA 65514 FFEA   65514 FFEA

 61667 F0E3 65514 FFEA   63120 F690
 34509 86CD 32666 7F9A   42687 A6BF

 65533 FFFD 65533 FFFD   65533 FFFD
OP #2263582
Lesenswert?

Hallo zusammen,

vielen Dank für die tollen Anregungen.

Das die Werte in km gespeichert sind ist natuerlich keineswegs sicher.
Da es sich um einen Suzuki Tacho handelt und nur ueber den Tacho die 
Unterscheidung zwischen Meilen und Kilometer unterschieden wird, ist 
auch alles andere möglich.

Sollten Impulse gezählt werden, sind es 4,735793.. Impulse pro Meter.
1888 mm Radumfang (gemessen! Was der Tacho intern hat ist unklar.)
Übersetzung 17/38
4 Impulse pro Ritzelumdrehung
Sensor der Geschwindigkeitsmessung am Ritzel.
-> 0,211... m pro Impuls -> 4,735793... Impulse pro Meter

Danke fuer Eure Unterstuetzung.

MfG,

Balze
Gast #2263621
Lesenswert?

Wer bestimmt denn überhaupt, wie Daten in einem Steuergerät gespeichert 
werden müssen? Normen, wie IEEE?

Sonst hätte ich auch mal vermutet, daß ein Entwickler einen lustigen Tag 
hat, und die Zahlen mit einer anderen Zahl einfach nur XOR-verschlüsselt 
und wieder entschlüsselt. Alles schon gesehen. So was macht man, wenn 
man möchte, daß ein Kunde in einem gekauften Gerät nicht hinter die 
Details kommt. Wenn man möchte, daß er es nicht nachbaut, und daran 
verzweifeln soll.
Gast #2263638
Lesenswert?

Dennis Heynlein schrieb:

> Ist das nicht schon immer die Herausforderung von Reverse Engineering
> gewesen ?
> Ein Entwickler mit einem lustigen Tag und ein Hacker mit Neugier.

Du hast Recht. Dann steht uns ja hier noch was bevor. Selbstverständlich 
ist mit reichlich Aufwand alles knackbar. Ich bin aber auch neugierig, 
auch wenn ich im Augenblick hier selbst noch mit den Schultern zucke.

Ich hol schon mal Popcorn, Chips, und ein Pils... ;-)
Gast #2263645
Lesenswert?

Das Verhältnis (132,1/124,4) der Kilometerstände muss sich in der 
Zahlenansammlung wiederspiegel.

          normal          invertiert
124,4     F690 A6BF       096F 5940
132,1     F0E3 86CD       0F1C 7932

Beispiel (normal Zahlen Byte 3 u. 4 LowHigh): BFA6 * 132,1/124,4 = CB82

Ist zwar in der Nähe - aber ..
Gast #2263672
Lesenswert?

Olek schrieb:

> Der Wert für 000,0 lässt doch vermuten, dass da ne
> andere Einheit als km im Hintergrund liegt.

Bei meinem Auto kann ich in einem Service-Mode Meilen und km auslesen. 
Aber da ist ja nur ein Umrechnungsfaktor von 1,652km/Meile dahinter. Wie 
aber die Steuergeräte programmiert sind, ob auf km- oder Meilenbasis, 
weiß ich nicht. Der Ford Fiesta wird ja auch in England mit konstruiert 
und gebaut.

Apropos Meile: Was haben die denn da noch für komische Einheiten? Fuß? 
Inch?
#2263715
Lesenswert?

Hallo,

ich kenne es von PKW Tacho's das die Werte auf viele Bytes verteilt 
werden. Meist liegen die Daten ja in einem EEprom und der sollte nicht 
so oft beschrieben werden. BMW hatte das damals auf 16 Bytes verteilt. 
Also war:

01 km = 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
02 km = 00 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00
09 km = 01 01 00 01 00 01 00 01 00 01 00 01 00 01 00 01
17 km = 01 02 01 01 01 01 01 01 01 01 01 01 01 01 01 01

usw.

Vieleicht hilft es ja, Gruß Rene
OP #2263809
Lesenswert?

Hallo zusammen,

so, jetzt bin ich wieder online, musste mal eben nach hause fahren (von 
der Arbeit 8P )

Dennis Heynlein schrieb:
> Ist der Sensor am Rad ein Hallsensor ?

Es ist (vermutlich) ein Hallsensor am Ritzel mit einem Geber, der 4 
Impulse pro Umdrehung (des Ritzels) macht.


Ich bin gerade 2 virtuelle Kilometer gefahren, waehrend mein 
Logicanalyzer aufgezeichnet hat. (Mit der Bohrmaschine Tempo 150km/h  :) 
)

Resultat: Nix! Offensichtlich werden die Werte nur beim Abschalten der 
Zuendung gespeichert.
Leider habe ich nicht erst die virtuelle Zuendung ausgemacht, sondern 
gleich das Netzteil abgeschaltet, das +12V und Zuendung hergibt.


Mehr Info kann ich heute leider nicht zu Verfuegung stellen, da mir 
jetzt ein Lötauge der Platine abgerissen ist. :(

Das muss ich am WE erstmal wieder anfrickeln.

Danke fuer Euer Engagement!!

MfG,

Balze

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren