PIN kod P3

Det finns två PIN koder i P3 CEM likasom tidigare generationer.

Vad krävs?

En Windows 10 dator med i5 fungerar suveränt, det säkerställer att USB<->J2534 kommunikationen hänger med.

Men notera att det är minimal CPU aktivitet när man beräknar den primära PIN koden! Den största kraften läggs på CAN kommunikationen för att kunna testa många kodkombinationer på så kort tid som möjligt.

Ett riktigt bra J2534 interface kan i mina tester högst klara av ca 270 koder per sekund. Jag tror att vi då närmar oss gränsen för vad CAN och USB-bussen kan leverera.

Varför tar det då så olika länge mellan olika bilar?

Detta beror på att vi måste testa oss fram genom ”trial and error”, vi börjar helt enkelt att räkna 0.1.2.3.. etcetera och testar mot CEM varje gång om detta var rätt PIN. CEM är, som tur är, blixtsnabb att svara fel kod och vi kan pröva igen ad infinitum. Har man då tur att en korrekt PIN är 0x1000 krävs bara lika många försök innan vi träffar rätt! Det motsatta är självklart också sant, ligger koden högt, till exempel 0xFFFFFFFF11, kommer det kräva väldigt många försök!

Om du nu var lite vaken så noterar du kanske att 270 koder per sekund och en PIN kod som är 0xFFFFFFFF11 alltså decimalt 1099511627537 skulle ta 1131184 timmar eller ca 47000 dagar att hitta! Vad händer nu??

Tur för oss! Ford har varit med i utvecklingen av P3 plattformen. De gjorde ett misstag i implementeringen av den Seed/Key rutin som ligger till grund för kodverifieringen. Denna bug resulterar i att det finns väldigt många koder som genererar en korrekt respons från CEM och inte bara den som står skriven i FLASH. Skulle bara PIN koden från FLASH fungera vore detta omöjligt!

Ford gjorde oss en enorm tjänst! Tack!

Praktiska exempel på PIN koden för att ändra CarConfig

Jag har en CEM där detta är den riktiga PIN koden i FLASH: 0x7984442887 men även 0x000065C85B är en korrekt kod och den sistnämnda tar inte så lång tid att hitta! ca 5,8 timmar totalt. Då började jag att räkna från och med 0x100000 eftersom mina tester visade att ingen kod hittas lägre än så.

Efter ytterligare djupdykningar i ämnet så ändrade jag mig till att söka från toppen och nedåt vilket verkar ge något kortare söktid i genomsnitt. Vissa CEM tar ändå uppåt 12 timmar medans andra hittar koden på 1 till 2 timmar.

Hur var det med den andra PIN koden? Säkerhetskoden

Den andra PIN koden, som jag här kallar för säkerhetskod, används för att hantera startnycklar och MOST säkerhetsinställningen. Denna kod går inte att testa fram eftersom CEM bara tillåter tre försök per gång sedan måste man skicka Reset och vänta ut en timer.

Efter att man klurat lite på detta så insåg jag att man faktiskt kunde använda ISO CAN kommandot Upload på RAM arean för processorn i CEM. Många timmar och tester senare kunde jag hitta att Seed/Key data för koden ligger i RAM om man utför operationer i en viss ordning. Då är det en enkel sak att ladda hem minnes arean och låta datorn göra kodsökandet lokalt. Tar max några minuter att hitta rätt kod som sedan kan verifieras mot CEM.

Säkerhetskoden har jag bara använt för att läsa status på ITP/MOST-skyddet och stänga av det för att kunna byta slutsteg och ICM med mera. Den kan också användas för att lägga till/ta bort nycklar och immobilizer kod men det är inget jag tänker gå in närmare på.

2022-10-02