Zie voor het hoofdonderwerp de pagina: Ontgrendelen Philips radio’s met beveiligingscode.
Deze pagina gaat in op de autoradio’s met een beveiligingscode (Security Code) van 5 cijfers van voor 1989. In mijn verzameling is dat onderstaande autoradio.
In tegenstelling tot de beveiligingscode met 4 cijfers is die met 5 cijfers onmogelijk op basis van bijvoorbeeld een serienummer te achterhalen. De code wordt namelijk bij activatie bepaald door de gebruiker zelf en daarna opgeslagen in het geheugen. Zodra de radio wordt ontgrendeld blijft de beveiligingscode technisch wel in het geheugen staan maar bij opnieuw activeren dient de gebruiker een nieuwe code in te voeren (de eerder gebruikte code is uiteraard ook mogelijk). Om die reden is het uitlezen van de General Instrument ER1400-EAROM de enige oplossing.
EAROM uitlezen
Het dumpen van de ROM gaat op exact dezelfde manier als bij de beveiligingscode met 3 cijfers al is de inhoud van de dump niet hetzelfde. Deze pagina gaat alleen in op de relevante verschillen.
Zoals het er nu naar uitziet zijn de ROM-dumps van mijn beide DC 954-radio’s beschadigd (diverse gebieden tonen alleen 0000
). Het is echter wel zo dat beide ROM-dumps exact dezelfde gebieden gevuld hebben met deze informatie. Na diverse testen was het eerste succesje het vinden van de byte die er voor zorgt dat de radio 15 minuten “dood” is en de byte die het aantal nog toegestane pogingen bijhoudt.
Met de informatie vergaard bij de beveiligingscode met 3 cijfers viel het mij op dat in beide gevallen het gebied waar de code stond gevuld was met bytes die pasten in de tabel zoals opgemaakt bij 3-cijferige beveiligingscodes. Echter hield dit wel in dat ik dan maar 3 cijfers heb. Al snel kwam het idee om de bytes tussen de bytes uit voorgaande afbeeldingen eens goed te bekijken en jawel, die paste ook binnen het patroon en zou ook het verschil verklaren op die posities tussen de twee dumps die ik op dat moment had.
E | D | C | B | A |
---|---|---|---|---|
1 | 2 | 3 | 4 | 5 |
Wanneer we de letters DDADA achter elkaar zetten en vergelijken met de tabel hierboven dan komen we uit op de beveiligingscode 22525. Wat hier gedaan is dat is niet meer dan een simpele “bit-flip”. Wanneer je deze tabel door zou trekken dan is F een 0 en aan de andere kant van de tabel is dan 0 weer een F.
Met deze code is de radio iedere keer te ontgrendelen en zolang de permanente voeding is aangesloten blijft de radio ontgrendeld. Wat echter niet mogelijk is dat is het uitprogrammeren van de code-functie. Deze optie is wel op te roepen door de MO-knop ingedrukt te houden bij inschakelen maar het daadwerkelijke uitprogrammeren gebeurt daarna niet. Aangezien er geen documentatie te vinden is van de DC 954 kan ik niet nagaan of dit misschien wel zo bedoeld is maar als de werking vergelijkbaar moet zijn aan de beveiligingscode met 3 cijfers dan bestaat het vermoeden dat er datagebieden uit de ROM beschadigd zijn die benodigd waren voor deze functie.
Omdat de radio verder perfect werkt met deze ROM heb ik besloten om de posities van de beveiligingscode uit te vullen met E
. Hierdoor is de in te voeren code voortaan 11111. Dit is toch weer een stuk eenvoudiger te onthouden.
Logic analyser
Om te zien wat er gebeurd met de EAROM wanneer er een poging gedaan wordt om de beveiligingscode uit te programmeren ben ik overgegaan tot de aanschaf van een “logic analyser” (DreamSourceLab DSLogic Plus). Na het bestuderen van de datasheet van de General Instrument ER1400 (via TAUTEC ELECTRONICS) ben ik begonnen met wat simpele testjes waarvan ik de uitkomsten met zekerheid kon vaststellen aan de hand van eerder gemaakte ROM-dumps. Vervolgens heb ik een sessie gestart met de volgende voorwaardes:
- Beveiligingscode is ingeschakeld. (is tenslotte niet uit te schakelen)
- Radio is eenmaal ontgrendeld waardoor de beveiligingscode tot spanningsval niet ingevoerd hoeft te worden
Wanneer de radio aangezet wordt terwijl de MO-knop ingedrukt wordt is mijn verwachting dat de beveiligingscode uitgeprogrammeerd kan worden. Dat de radio hier ook zo over lijkt te denken blijkt wel uit het feit dat de code dan bij opstarten ingevoerd dient te worden. Bij radio’s met een code van 3 cijfers is dit ook de manier om de beveiligingscode uit te programmeren.
In onderstaande tabel zijn de stappen (aan de hand van de ER1400-datasheet) te vinden die de radio doorloopt als het gaat om communicatie met de EAROM.
Stap | Adres* | HEX | BIN** |
---|---|---|---|
Vermoedelijk: bepalen of de code uit 3 of 5 cijfers bestaat. | |||
Accept address | 36 | ||
Shift data out | 2EEE | 101110 11101110 | |
Vermoedelijk: Ophalen eerste deel beveiligingscode. | |||
Accept address | 26 | ||
Shift data out | 1E E2 | 011110 11100010 | |
Vermoedelijk: Ophalen tweede deel beveiligingscode. | |||
Accept address | 36 | ||
Shift data out | 2EEE | 101110 11101110 | |
Code kan nu worden ingevoerd. | |||
Juiste code (11111) wordt ingevoerd | |||
Onbekend | |||
Accept address | 26 | ||
Shift data out | 1E E2 | 011110 11100010 | |
Wegschrijven dat de beveiligingscode uitgeschakeld moet worden. Let op: in werkelijkheid wordt er weggeschreven wat er al stond en blijft de beveiligingscode daarmee geactiveerd. |
|||
Accept address | 26 | ||
Erase | |||
Accept data | 1E E2 | 011110 11100010 | |
Write | |||
Onbekend | |||
Accept address | 36 | ||
Shift data out | 2EEE | 101110 11101110 | |
Onbekend | |||
Accept address | 17 | ||
Shift data out | 0000 | 000000 00000000 | |
Onbekend | |||
Accept address | 16 | ||
Shift data out | 3DEF | 111101 11101111 | |
Vermoedelijk: FM, AM of LG | |||
Accept address | 7 | ||
Shift data out | 3EEE | 111110 11101110 | |
Vermoedelijk: Ophalen FM-voorkeuze 1 | |||
Accept address | 30 | ||
Shift data out | 0D9F | 001101 10011111 | |
Vermoedelijk: Ophalen FM-voorkeuze 2 | |||
Accept address | 31 | ||
Shift data out | 3E6F | 111110 01101111 | |
Vermoedelijk: Ophalen FM-voorkeuze 3 | |||
Accept address | 32 | ||
Shift data out | 0F57 | 001111 01010111 | |
Vermoedelijk: Ophalen FM-voorkeuze 4 | |||
Accept address | 33 | ||
Shift data out | 3D53 | 111101 01010011 | |
Vermoedelijk: Ophalen FM-voorkeuze 5 | |||
Accept address | 34 | ||
Shift data out | 0DEF | 001101 11101111 | |
Vermoedelijk: Ophalen FM-voorkeuze 6 Let op: Voorkeuze 6 is niet mogelijk op een DC 954 maar de software lijkt er op voorbereid te zijn. Ook op de LG (adres 20)is deze positie leeg (0000). |
|||
Accept address | 35 | ||
Shift data out | 0000 | 000000 00000000 | |
De radio is nu aan. Zonder verdere interactie van de gebruiker is er geen communicatie meer met de ER1400. |
* De adressering wordt gedaan per 2 bytes. In de voorgaande schermafbeelding van IC-Prog waarin de code naar 11111 is aangepast is adres 26 gelijk aan 1EE2 en adres 36 gelijk aan 2EEE.
** Let op: De ER1400 is een 14 bit EAROM
Gezien de gebruikte datagebieden tot aan het wegschrijven van data naar de EAROM informatie bevatten lijkt het erg onwaarschijnlijk dat de beveiligingscode uit te schakelen is en moet, tenzij iemand het tegendeel kan bewijzen, er van uitgegaan worden dat het uitzetten van de beveiligingscode niet mogelijk is. Dit gegeven wordt deels kracht bijgezet door het feit dat de posities van de eerste twee cijfers van de beveiligingscode bij een radio met 3 cijfers gebruikt worden om de status van de beveiligingscode op te slaan.
ER1400 en dataretentie
Volgens de datasheet van de ER1400 (via TAUTEC ELECTRONICS) is de dataretentie van de ER1400 geschat op 10 jaar. Mijn ervaring met de diverse Philips-radio’s waar dit IC inzit is dat ze allemaal nog uit te lezen waren maar of ook alle datagebieden altijd compleet zijn is niet te zeggen.
Het is om die reden dan ook van belang om een goede backup te maken van de ROM in het geval het nodig is deze ooit opnieuw te moeten programmeren.
Andere sterke aanbeveling is om bij het dumpen van de ROM deze ook een keer te overschrijven, al dan niet met dezelfde gegevens. Hierdoor begint de dataretentie van 10 jaar weer opnieuw te tellen.