EEPROMs uitlezen (en begrijpen)

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • EG Mike
  • Registratie: April 2012
  • Laatst online: 03-04 16:03
Beste Tweakers,

Ik ben momenteel bezig met (leren van) het resetten van airbag modules in auto's welke in het verleden een aanrijding hebben geregistreerd. Deze modules registreren in een EEPROM de zogenaamde crashdata. Door het uitlezen van deze chips, de crashdata te verwijderen en de 'schone' data terug te schrijven kan een airbag module weer storingsvrij gemaakt worden.

Er zijn zó veel aanbieders op internet wie deze chip-dumps 'schoonmaken', dat het me lijkt dat dit geen rocket-science is om zo maar te zeggen.

Kan iemand mij vertellen waar ik moet beginnen om deze .bin bestanden te gaan begrijpen?
In welke 'taal' is deze code geschreven?
Kan deze code omgetoverd worden tot iets leesbaars?

Hieronder een voorbeeld van een chip-dump van een 95080 EEPROM

Afbeeldingslocatie: http://i.imgur.com/6XBM3Su.png

Wie o wie kan mij opweg helpen?! :)

Acties:
  • 0 Henk 'm!

  • auto660
  • Registratie: November 2010
  • Laatst online: 22:14

auto660

1991 240 GL Brick

Halen hun die chip gewoon niet helemaal leeg dat er niks meer op staat? Die optie zit bij mijn TL866 er gewoon in.

Gaming~ |Ryzen 5 5500, Asrock B450M PRO4, 16GB 2666@3600MHz DDR4, GTX1650 Super 4GB, 1TB + 256GB SSD, 250W Apevia PSU| Workstation~ |Q9550, 8GB CL4 DDR2, P5B Premium, GTX950, 512GB SSD + 1TB HDD, 550W PSU


Acties:
  • 0 Henk 'm!

  • SMSfreakie
  • Registratie: Maart 2004
  • Niet online
dump van een "goede" eeprom maken? en deze vergelijken met een getriggerde :?

404 Signature not found


Acties:
  • 0 Henk 'm!

  • Davidshadow13
  • Registratie: Oktober 2006
  • Laatst online: 08:50
De code die weggescheven wordt is een gecompileerde binary. In dit geval in wordt het hexadecimaal weergegeven voor de leesbaarheid maar in feite in het gewoon binary code (dus nullen en enen). Elke positie hexadecimaal (2 karakters) stelt één byte voor.

Het terugvertalen naar leesbare broncode is daarom bijna onmogelijk. Het enige wat je makkelijk kunt doen is binaries bekijken en vergelijken of kijken in de documentatie van de chips welke gebruikt worden welke informatie op welk geheugenadres wordt weggeschreven en dat zo terug herleiden. De geheugenadressen worden links in de blauwe kolom weergegeven in jouw plaatje.

HD4Life @ Full-HD


Acties:
  • 0 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
8kBit EEPROM gaat geen programma code bevatten. Dit is binaire data, en wie weet hoe de structuur is van de gegevens.

Misschien wissen de anderen enkel de EEPROM.. maar het kan dan ook zijn dat de airbag bij self-tests (die het ongetwijfeld zal hebben) dat niet gaat slikken.
Als je dus een bekend goede EEPROM heb, kan je beter die data overzetten.

(of misschien nog veiliger, een nieuwe airbag kopen)

[ Voor 7% gewijzigd door Hans1990 op 19-05-2015 17:10 ]


Acties:
  • 0 Henk 'm!

Verwijderd

zal ook wel een serie en produktie nr in staan.. er worden er zoveel gejat

Acties:
  • 0 Henk 'm!

  • TommieW
  • Registratie: December 2010
  • Laatst online: 22:18

TommieW

Numa numa.

Is het niet te wissen met een merkspecifieke OBD tool? Dus apparaat inbouwen en via OBD de code wissen?

1700X@3,9GHZ - Asus Crosshair VI Hero - 32GB Corsair LPX - GTX 1070Ti
iPhone 13 Pro Max - Macbook Pro 16" M1 Pro


Acties:
  • 0 Henk 'm!

  • EG Mike
  • Registratie: April 2012
  • Laatst online: 03-04 16:03
auto660 schreef op dinsdag 19 mei 2015 @ 16:56:
Halen hun die chip gewoon niet helemaal leeg dat er niks meer op staat? Die optie zit bij mijn TL866 er gewoon in.
De chip wordt niet blank gemaakt. In deze chip staat bijvoorbeeld ook hoeveel airbags/gordels deze auto heeft. In sommige gevallen ook het chassisnummer.
SMSfreakie schreef op dinsdag 19 mei 2015 @ 17:01:
dump van een "goede" eeprom maken? en deze vergelijken met een getriggerde :?
Al gedaan, echter is dit per airbagmodule verschillend, en was ik meer opzoek naar de achterliggende gedachte. Het uitwisselen van de software van goede en getriggerde modules is ook niet zo spannend. Ik probeer enkel wat meer te leren over het onderwerp.
Davidshadow13 schreef op dinsdag 19 mei 2015 @ 17:05:
De code die weggescheven wordt is een gecompileerde binary. In dit geval in wordt het hexadecimaal weergegeven voor de leesbaarheid maar in feite in het gewoon binary code (dus nullen en enen). Elke positie hexadecimaal (2 karakters) stelt één byte voor.

Het terugvertalen naar leesbare broncode is daarom bijna onmogelijk. Het enige wat je makkelijk kunt doen is binaries bekijken en vergelijken of kijken in de documentatie van de chips welke gebruikt worden welke informatie op welk geheugenadres wordt weggeschreven en dat zo terug herleiden. De geheugenadressen worden links in de blauwe kolom weergegeven in jouw plaatje.
Hans1990 schreef op dinsdag 19 mei 2015 @ 17:10:
8kBit EEPROM gaat geen programma code bevatten. Dit is binaire data, en wie weet hoe de structuur is van de gegevens.

Misschien wissen de anderen enkel de EEPROM.. maar het kan dan ook zijn dat de airbag bij self-tests (die het ongetwijfeld zal hebben) dat niet gaat slikken.
Als je dus een bekend goede EEPROM heb, kan je beter die data overzetten.
Dit is wat ik ook verwacht. Ik denk dat er enkel bepaalde nullen en eentjes gezet worden welke aangeven dat een airbag is afgegaan. Nu zit ik al twee dagen de code van goede/getriggerde EEPROMs te bekijken, maar ik kan er weinig logica in vinden. Vandaar mijn vraag of ik de code anders moet/kan interpreteren om er een stap verder mee te komen.

Bedankt voor de antwoorden zo ver!
TommieW schreef op dinsdag 19 mei 2015 @ 17:14:
Is het niet te wissen met een merkspecifieke OBD tool? Dus apparaat inbouwen en via OBD de code wissen?
Sommige merken (vooral Japanners) kunnen via OBD gereset worden, ja. Helaas de Europeesche merken waar ik veel mee van doen heb, niet.
Verwijderd schreef op dinsdag 19 mei 2015 @ 17:12:
zal ook wel een serie en produktie nr in staan.. er worden er zoveel gejat
Het zijn de airbags zelf die veel worden gejat (om schadeauto's weer opnieuw op te bouwen). De regelkasten van deze airbags gaan vrijwel niet stuk, ze blokkeren alleen na een aanrijding. Dit is dus was ik probeer te repareren :)

[ Voor 12% gewijzigd door EG Mike op 19-05-2015 17:18 ]


Acties:
  • 0 Henk 'm!

  • Rolfie
  • Registratie: Oktober 2003
  • Laatst online: 18:45
pryth schreef op dinsdag 19 mei 2015 @ 16:28:
Er zijn zó veel aanbieders op internet wie deze chip-dumps 'schoonmaken', dat het me lijkt dat dit geen rocket-science is om zo maar te zeggen.

Kan iemand mij vertellen waar ik moet beginnen om deze .bin bestanden te gaan begrijpen?
In welke 'taal' is deze code geschreven?
Kan deze code omgetoverd worden tot iets leesbaars?
Hij is wel mooi. Volgens mij geen rocket science, maar daarna laat je het tweakers oplossen voor jouw?

Ik vind hem persoonlijk leuk bedacht.....

Acties:
  • 0 Henk 'm!

  • BaRF
  • Registratie: Augustus 2001
  • Laatst online: 06-10 15:52

BaRF

bijna kerst

Even een vraagje puur uit interesse: mocht je hier nou een foutje in maken, gaat die airbag dan nog af? Anders een beetje eng idee om daar mee te experimenteren...

The space between is where you'll find me hiding, waiting for you


Acties:
  • 0 Henk 'm!

  • EG Mike
  • Registratie: April 2012
  • Laatst online: 03-04 16:03
Rolfie schreef op dinsdag 19 mei 2015 @ 17:26:
[...]


Hij is wel mooi. Volgens mij geen rocket science, maar daarna laat je het tweakers oplossen voor jouw?

Ik vind hem persoonlijk leuk bedacht.....
Ik laat niemand iets oplossen voor me toch? Ik vraag enkel een duwtje in de juiste richting om zelf te gaan leren hoe en wat. Als dat al niet meer mag hier..

Acties:
  • 0 Henk 'm!

  • SMSfreakie
  • Registratie: Maart 2004
  • Niet online
BaRF schreef op dinsdag 19 mei 2015 @ 17:26:
Even een vraagje puur uit interesse: mocht je hier nou een foutje in maken, gaat die airbag dan nog af? Anders een beetje eng idee om daar mee te experimenteren...
gewoon even uit proberen... oliedrum er overheen.. 8)


ontopic:
andere methode is natuurlijk een airbag + chip nemen en deze triggeren :?

en een before en een after dump maken

404 Signature not found


Acties:
  • 0 Henk 'm!

  • SinergyX
  • Registratie: November 2001
  • Laatst online: 21:30

SinergyX

____(>^^(>0o)>____

BaRF schreef op dinsdag 19 mei 2015 @ 17:26:
Even een vraagje puur uit interesse: mocht je hier nou een foutje in maken, gaat die airbag dan nog af? Anders een beetje eng idee om daar mee te experimenteren...
Of andersom, je propt hem terug in je stuur en maar hopen dat hij alsnog afgaat als het moet :P

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


Acties:
  • 0 Henk 'm!

  • EG Mike
  • Registratie: April 2012
  • Laatst online: 03-04 16:03
BaRF schreef op dinsdag 19 mei 2015 @ 17:26:
Even een vraagje puur uit interesse: mocht je hier nou een foutje in maken, gaat die airbag dan nog af? Anders een beetje eng idee om daar mee te experimenteren...
Nee, dit kan niet gebeuren. Een airbag gaat enkel en alleen af wanneer de auto een vertraging registreert in combinatie met een aantal andere factoren. Tenzij je direct spanning op de explosieven zet :P Het is dus niet zo (zoals in films geschetst wordt) dat wanneer je tegen de bumper trapt, de airbags eruit vliegen. Als er een foutje in deze EEPROM zit (of je laadt de code van een ander model in je chip), dan schakelt de airbag module compleet uit en gaat je airbaglampje aan. Hier kan niet veel fout gaan.

EDIT: om even wat te verduidelijken. Airbags en een Airbag module (SRS Module) zijn twee compleet verschillende dingen. De airbags zijn de zakken met de explosieven die in je stuur ed. zitten. De airbag module is een klein computertje ergens in de auto welke als zelftest voor airbags dient. Werkt deze module niet (goed), brandt je airbaglampje en werken je airbags niet. Deze module kan ik afzonderlijk van de auto testen (waar geen airbags op aangesloten zijn).

[ Voor 22% gewijzigd door EG Mike op 19-05-2015 17:38 ]


Acties:
  • 0 Henk 'm!

  • soepah
  • Registratie: December 2006
  • Laatst online: 15:47
wat mij het meest logisch lijkt en wat ook al gesuggereerd is door SMSFreakie en Hans1990 is om een 'goede' eeprom te pakken en de dump daarvan te vergelijken. het lijkt me nogal simpel aangenomen om te zien dat daar 1 bitje getoggled is maar er zal vast een verschil merkbaar zijn tussen die 2. Er zal door de programmatuur in de module vast en zeker een soort data structuur oid inliggen waarin een en ander bijgehouden wordt. de truuk is dan om de verschillen te zien. en die te wijzigen voor deze eeprom.

Deze eeprom wordt alleen gebruikt voor de Airbag module of ook voor andere delen van het systeem?

wie van vissen houdt, houdt niet van vissen


Acties:
  • 0 Henk 'm!

  • real[B]art
  • Registratie: Februari 2000
  • Laatst online: 25-09 19:32

real[B]art

CTRL+ALT+D1337

pryth schreef op dinsdag 19 mei 2015 @ 17:14:
Sommige merken (vooral Japanners) kunnen via OBD gereset worden, ja. Helaas de Europeesche merken waar ik veel mee van doen heb, niet.
De Nissan Micra van mijn moeder gaf op een gegeven moment een airbag storing aan.

Daar kon je door binnen een aantal seconden het contact 3x aan en uit te zetten in de diagnostic modus komen. Vervolgens ging het airbag lampje in een bepaald patroon knipperen, waaruit je weer af kon leiden waar de storing zat (in dit geval gordijn airbag links). Bij deze auto een bekend probleem dat de stekkers aan de airbags na verloop van tijd wel eens slecht contact maken en zodra dit één keer gebeurt gaat de airbagmodule permanent in storing.
Panelen verwijderd, stekker losgehaald, schoongemaakt en weer ingestoken. Nogmaals trucje met contactsleutel, diagnostische modus gaf geen fouten meer, contact uit en weer aan, waarschuwingslampje uit :)

Anyway om een lang verhaal kort te maken, een mogelijkheid is om een goed functionerende auto te nemen, data te dumpen, opzettelijk een storing te introduceren (stekker van één van de airbags los halen bijvoorbeeld), wederom data dumpen, en vergelijken. Zolang je maar een manier hebt om de unit weer te resetten. Wellicht dat je op die manier al een stuk wijzer kunt worden welke bitjes wat betekenen en op welk adres ze te vinden zijn :)

"The general rule on about people on IRC seems to be "Attractive, single, mentally stable: choose two"


Acties:
  • 0 Henk 'm!

Verwijderd

Wellicht een idee om eens op arcade of flipper forums te kijken. Daar zitten veel experts mbt eproms en "oude" code.

Acties:
  • 0 Henk 'm!

  • Black-Xjuh
  • Registratie: Oktober 2002
  • Laatst online: 14-04 10:23
Naar mijn mening heeft dit weinig te maken met EEPROM..

Je moet er achter zien te komen welke bytes wat zijn. Dus ga op zoek naar een herkenbaar iets of vergelijk wat er veranderd na het activeren van een airbag zoals eerder aangegeven. Het blijft gissen zolang je niet de indeling kent.

Acties:
  • 0 Henk 'm!

  • EG Mike
  • Registratie: April 2012
  • Laatst online: 03-04 16:03
Dank voor de antwoorden weer.

Het gaat me niet zo zeer om het repareren van de airbagmodule zelf. Zoals gezegd kan ik de dump van een werkende module overzetten. Ik probeer enkel meer te leren over de data in de EEPROM, om uit te vogelen wát de zgn. crashdata nou precies inhoudt, en waar ik deze kan vinden op een desbetreffende chip.
Black-Xjuh schreef op donderdag 21 mei 2015 @ 14:34:
Naar mijn mening heeft dit weinig te maken met EEPROM..

Je moet er achter zien te komen welke bytes wat zijn. Dus ga op zoek naar een herkenbaar iets of vergelijk wat er veranderd na het activeren van een airbag zoals eerder aangegeven. Het blijft gissen zolang je niet de indeling kent.
Dus als ik het goed begrijp, heeft een betreffende eeprom een indeling welke bijvoorbeeld zegt:

00000000 t/m 000000a0 - chassisnummer,
000007d0 t/m 000008f0 - crash data,
00000b60 t/m 00000b70 - aantal airbags
etc etc.

Ik snap dat deze indeling per merk/model/fabrikant zal verschillen, maar dit vergemakkelijkt mijn zoektocht wat meer.

Acties:
  • 0 Henk 'm!

  • Rikkiz0r
  • Registratie: Januari 2009
  • Niet online
Heb je het .bin bestand al eens door binwalk gehaald?
Wellicht kun je er met die tool wat uithalen.

http://binwalk.org/features/

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Nu online
pryth schreef op donderdag 21 mei 2015 @ 18:39:
Het gaat me niet zo zeer om het repareren van de airbagmodule zelf. Zoals gezegd kan ik de dump van een werkende module overzetten. Ik probeer enkel meer te leren over de data in de EEPROM, om uit te vogelen wát de zgn. crashdata nou precies inhoudt, en waar ik deze kan vinden op een desbetreffende chip.
Er zijn twee opties:
- Referentietests, zoals je eerder is voorgesteld. Dump een module, voor een actie uit (airbag trigger) en kijk wat er verandert. Of vergelijk meerdere units. Dat is hoe men vermoedelijk commercieel resets aanbiedt.
- De EEPROM wordt beschreven door een MCU. Meestal hebben die ook intern flash, waardoor de bijbehorende programmacode zich waarschijnlijk daar bevindt.

Het hebben van (1) een MCU/aux. devices datasheet (2) een goed schema van de hele print en (3) een dump van de MCU is een vereiste om echt te achterhalen hoe zo'n ding werkt. Maar dat is erg tijdrovend en complex (zo kan ik me voorstellen dat de MCU read protected is).

Heb je enig idee wat er aan die EEPROM hangt qua MCU?
Dus als ik het goed begrijp, heeft een betreffende eeprom een indeling welke bijvoorbeeld zegt:

00000000 t/m 000000a0 - chassisnummer,
000007d0 t/m 000008f0 - crash data,
00000b60 t/m 00000b70 - aantal airbags
Bijvoorbeeld ja, afhankelijk van hoe complex zo'n ding werkt. Stel dat het ding meerdere log records kan wegschrijven, dan kan de data wel eens verschuiven.
Pagina: 1