Recent Post Viewed


Visar inlägg med etikett Edit Volvo CarConfig. Visa alla inlägg
Visar inlägg med etikett Edit Volvo CarConfig. Visa alla inlägg

Extrahera PIN-kod i CEM

Att öppna upp CEM för skrivning med den sk."Brute-force-metoden" är väl det bästa alternativet när det gäller fjärrutläsning av PIN-kod, T.ex som Johnnys PX3-tool. Detta alternativ är förstås det bästa när man fysiskt inte har tillgång till CEM/ECU man ska bryta upp. Själva grejen att det lämpar sig med brute-force för ta reda på PIN är för att inom fordons industrin jobbar man med protokollet Seed//Key via CAN mellan en adapter och ECU. Att det fungerar att skicka nycklar(Keys) kontinuerligt till ECU är ju beroende på hur reglerna för seed förfrågan är skriven i programvaran, I Volvos och FoMoCos fall är det så att seedförfrågan kan ske instant(direkt) utan fördröjning, Vi behöver alltså inte vänta på en seedtimer som måste räkna ned för nästa försök. 

SEED/KEY

Seed/key är enkelt förklarat så att sändaren skickar en Seedförfrågan tillt.ex CEM, när CEM mottager denna seedförfrågan så skickar CEM då ut en generad seed på CAN som mottagaren räknar ut och skickar en autentisk Key(nyckel) som CEM jämför med sin lagrade Key. Om dom matchar öppnas CEM för programmering. Nyckeln är en sträng HEX-data som CEM tycker sig vara rätt uträknad för att öppna. I FoMoCos algoritm så behöver detta inte vara en exakt autentisk nyckel utan SEED/KEY funktionen kan tolka den inkommande nyckeln som acceptabelt rätt endå och öppnar CEM för programmering. 

BRUTFORCE

I Volvo/Fords algoritm så behöver ju inte en exakt nyckelserie stämma. Det beror troligtvis på en felaktig programmerad eller bugg i Fords algoritm som sagt. Det är ju bra för oss att det är på det här viset, för det gör ju det enkelt för oss andra att få tag på en fungerande PIN kod som din CEM accepterar. Det grundar sig i att vi gör en kontinuerlig seedförfrågan till CEM även om den uträknade nyckeln vi provar är fel och vi kan göra ett nytt försök. Att det fungerar att skicka nycklar(Keys) kontinuerligt till ECU är ju beroende på hur reglerna för seed förfrågan är skriven i programvaran, I Volvos och FoMoCos fall är det så att seedförfrågan kan ske instant(direkt) utan fördröjning, Vi behöver alltså inte vänta på en seedtimer som måste räkna ned för nästa försök kan göras. Detta hade ju gjort detta omöjligt annars.


Här borde allt vara frid och fröjd, men orkar man inte göra en brute-force attack, då detta kan ta en ganska lång tid i timmar sett. Så kan man faktiskt hitta sin egna CEM nyckel på ett helt annat sätt.

PIN EXTRACT

Detta är inte det enklaste sättet om man säger så, men absolut det snabbaste och vill man ha den rätta PIN-koden är detta det enda sättet. Det hela handlar om att greppa koden direkt inifrån processorns minnes-area i CEM. Det man måste göra är att ta reda på vart på kretskortet processorn sitter och hitta dess ingångar som från fabrik är överlackade. Man får frilägga lödpunkterna och skaffa sig ett redskap för att kunna läsa ut data. Min vän Johnny hade ju en perfekt matchad sketch till Arduino som han har gjort på egen hand. All Heder till Johnny där

I grund finns det 2 olika sorters utförande på CEM i Volvo P3, Detta nedan är bara en generell fingervisning på de vanligaste numren, det finns avvikelser.

Den tidiga CEM heter 6G9T. De allra första P3:orna hade denna variant, S80 2006-2007. Från MY 2008 så heter den 7G9T. De är i grunden ganska lika. Den större skillnaden är styrningen av rattlåset(längre ned på sidan) MY 2010 så introducerades den CEM som kommer lägga standarden för Sensus och Sensus Connect. Från 2010-2011 så ser dessa helt annorlunda ut och heter AG9T-BG9T. Vid 2012 heter den CG9T efter 2013 så får CEM ett flertal protokoll som inte är kompatibelt med den äldre CEM strukturen, Bl.a XCAN. 2015-2016 så ändrades CEM ytterligare med intåget av Sensus Connect och CEM döptes om till 98HL14 istället.


För att få fram PIN-koden till CEM så måste nu dataflash läsas ut. I mitt fall med en Arduino.Vi behöver ju också en CEM såklart.Vi kopplar upp en skrotad V70 2.5T Flexifuel 2008 med VIN: YV1BW02E091082977. Efter utläsning så sparar vi BIN-filen och öppnar upp den i HexEdit.

I Hex-Edit letar vi upp raden där PIN ligger och här ser man att koden har 5 adressblock med ett bin-tal som ser ut så här 92-23-19-31-49 Här är alltså den riktiga PIN-koden för att öppna CEM!. Den unika kod Volvo använder sig av för att skriva till aktuell CEM. Däremot är PIN-kodens adressblock omkullkastade, den tolkas ut istället för 1-2-3-4-5 som 3-2-4-1-5 på Volvos vis. Öppnar vi sen BIN-filen i ett lämpligt konfigureringsprogram så kan vi nu se denna CEM:s PIN-kod på rätt sätt.





I grund och princip så är utläsningen av UserFlash och EPROM bra när man vill extrahera datan från en CEM om den är trasig och man vill klona en sådan, eller om man som jag även arbetar med en kopia på min bänk för att testa olika funktioner som min S80 inte har.

RATTLÅSET
Styrningen till rattlåset i en tidigt P3(2006-2007) så styrs det via DIM. Detta blir ett problem när man monterar en TFT DIM i en sådan tidig P3. Då fungerar inte längre rattlåset .Man får göra en procedur för att få det hela att lira, men då upphör rattlåset att fungera helt, det är i och för sig inget problem men bilen kommer inte bli godkänd på besiktingen om de upptäcker det. Därför försöker jag göra en lösning till detta. genom att få funktionen att fungera som det är tänkt. För att göra detta så behöver vi veta hur det hela är uppbyggt. På 6G9T som problemet är beläget egentligen, så styrs jordningen från DIM(via ett internt relä i instrumentet) till relä K9 i CEM som ingår huvudkretsen som förser rattlåset med spänning. En TFT DIM har inte denna instruktion i sin mjukvara så den förstår inte när CEM skickar förfrågan om att jordsätta K9 för att få en statusförfrågan från rattlåset(SCL) om läget låst eller urkopplat.
Varför Volvo har valt att lösa rattlåset på detta vis vet jag inte, det är för mig obesvarat.


I 7G9T så väljer Volvo att styra rattlåset från CEM istället. Detta är ju kanon när man vill montera ett TFT. Så när 7G9T lanserades med V70 2008 så är allt mycket enklare med detta. SCL blir nu helt kontrollerad av CEM som inte behöver skicka förfrågan till DIM. Det här alternativet är själva källan till detta inlägg. K9 bemästras nu som sagt av CEM som skickar en statusförfrågan till SCL vid start och stopp av motor.
Vi behöver också koppla om i den blåa CEM-kontakten på C3:71 till C3:42 den kopplingen finns inte i tidiga CEM.


Därefter gör vi nu en klon av min S80 CEM 6G9T där vi enbart för över min userdata och immokoder samt MOST och nycklar till en 7G9T (Det är samma CEM som jag hade som exempel längre upp i inlägget ).Vi forsätter att använda 2008 års mjukvara i CEM så vi gör inte en komplett kloning av min gamla CEM utan lägger in min användardata och Epromdata endast. Hur detta nu slutar får vi se..

To be continued!