Programmera om bilar.

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
MSC
Inlägg: 37
Blev medlem: 11 augusti 2016, 17:23:49

Programmera om bilar.

Inlägg av MSC »

Är det någon här som har funderat på, eller har programmerat om bilar?

Det heter väl PCM, och det är väl samma sak som EPROM?

Det jag främst är intresserad av att programmera om just nu, är Volvos tillsatsvärmare, alltså att lägga till ett tidur till en dieselvärmare. Detta verkar dom ta kanske 3000-4000 kr för att lägga till, vilket jag anser är vansinniga pengar bara för ett litet, men ack så bra tillägg i bilen och för miljön, säkert bara en variabel som ska ändras. (tänk vad mycket pengar man skulle tjäna om man själv ställde om detta :D )

Är det olagligt att själv lägga till ett tidur för dieselvärmaren om man kan detta? Det är ju inte så att man ändrar miljö- eller säkerhetsaspekter som t.ex. airbag i bilen.

Jag har själv tidigare i datorns barndom hackat program genom att omvandla maskin till assemblerkod, och därmed kunna manipulera program oavsett programmeringsspråk, sedan blev programmen för stora och komplicerade.

Jag är mest nyfiken om man kan hacka en bildator överhuvudtaget, och hur svårt det är, om någon har försökt, inte att jag nödvändigtvis vill göra det ;)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: Programmera om bilar.

Inlägg av Micke_s »

Hur svårt det är beror på åldern på bilen. Nya bilar har mer skydd för koden + ligger antagligen direkt i MCUn.
MSC
Inlägg: 37
Blev medlem: 11 augusti 2016, 17:23:49

Re: Programmera om bilar.

Inlägg av MSC »

Jo jag förstår att det blir svårare med mer komplicerad kod(nyare modeller), men om man går till maskinspråk (alltså ettor och nollor) så spelar det ingen roll om det finns ett skydd för koden högre upp (i princip).

Man skulle t.ex. kunna (i teorin) kortsluta tillsatsvärmaren för att kunna hitta var koden för denna finns, och därmed genom assemblerkod modifiera om den (eller i värsta fall maskinkod).

Och du sade: "ligger antagligen direkt i MCUn", jo fast även där borde det finnas eprom som ska gå att programmera om.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Programmera om bilar.

Inlägg av Icecap »

MSC: Om koden ligger direkt i µC'n finns det alltid skydd så att man inte kan läsa ut koden.
MSC
Inlägg: 37
Blev medlem: 11 augusti 2016, 17:23:49

Re: Programmera om bilar.

Inlägg av MSC »

Icecap: på vilket sätt? Hårdvarumässigt?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45176
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Programmera om bilar.

Inlägg av TomasL »

Ja, dagens processorer är försedda med ett skydd, vilket gör det omöjligt att läsa ut koden.
Dessutom, även om man nu skulle kunna läsa ut koden, så är det ju frågan om i vilken av de dussintals cpu'er som relevant kod ligger, det får anses som fullständigt omöjligt att göra detta.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Programmera om bilar.

Inlägg av mankan »

Mina erfarenheter är från VAG-bilar och till dem finns det mjukvara (bla VCDS, Carista) som via OBD kan läsa ut diverse värden i bilen, ge kommandon och även läsa och skriva diverse EEPROM, dvs ändra konfigurationen av mjukvaran och på så sätt slå på eller av finesser i bilen. Jag har t.ex slagit på Lap timer i konsollen mellan hastighetsmätaren och varvräknaren, fått fram batterimätare i mittkonsollen, och bäst av allt fått Start/Stop-funktionen att komma ihåg om den var av eller på mellan gångerna (dvs den är nu alltid av :-)). Beroende på utrustningsnivå i din bil kan du få fram mer eller mindre dyra finesser. Jag har även orsakat att stereon stängde av sig efter 30 sekunders körning. Numera åtgärdat.

Så mao jag tror inte du behöver modda nån kod i nån MCU utan det räcker troligen att pilla på EEPROM, frågan är bara vilka bitar till vad, om din tillsatsvärmarmodul nu är samma som den med timer.
MSC
Inlägg: 37
Blev medlem: 11 augusti 2016, 17:23:49

Re: Programmera om bilar.

Inlägg av MSC »

TomasL skrev:Ja, dagens processorer är försedda med ett skydd, vilket gör det omöjligt att läsa ut koden.
Det finns bara två alternativ, ett mjukvarumässigt skydd, eller genom hårdvara, vilket skydd menar du?

Omöjligt kan det inte vara, enligt mig, bara lättare eller svårare.
TomasL skrev:Dessutom, även om man nu skulle kunna läsa ut koden, så är det ju frågan om i vilken av de dussintals cpu'er som relevant kod ligger, det får anses som fullständigt omöjligt att göra detta.
Jag är inte insatt i exakt hur bilar är uppbyggda, men jag antog att man får tillträde genom en huvuddator, som sen kanske distribuerar kommandon till sekundära datorer, och då är det inte dom sekundära som är intressanta, utan vad huvuddatorn gör, men jag kan ha fel?

Om det finns en sekundär dator i tillsatsvärmaren, så borde den väl gå genom huvuddatorn? Annars får man väl koppla in sig i en annan helt separat krets?
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Programmera om bilar.

Inlägg av Icecap »

MSC: numera är µC byggt så att man kan aktivera helt eller delvis skydd av programminnet. Självklart går det att läsa ut minnet - men då måste man etsa bort plasten på µC'n och läsa adress och databussen direkt på själva kretsen. Det är en operation som kostar multum.

Detta ligger i hårdvaran på chippet som innehåller alla delar av programminnet och CPU'n och om du inte är sjusärdeles expert kan du bara glömma att läsa ut programmet.

Sedan finns det ofta många olika enheter, alla skyddade på samma sätt, de kommunicerar med varandra, ofta via en CAN-bus.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45176
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Programmera om bilar.

Inlägg av TomasL »

Det finns bara två alternativ, ett mjukvarumässigt skydd, eller genom hårdvara, vilket skydd menar du?
Skyddet i fråga ligger i processorns hårdvara och går inte att kringgå.

Dessutom så ligger de delar som är relevanta numera (för det mesta) inbakade i kislet, ett par lager ned, så det går inte att komma åt fysiskt längre.
Förutom det så har koden sannolikt manipulationsskydd också, med inbäddade checksummor, vilket i sin tur omöjliggör manipulation av enstaka programrader,
MSC
Inlägg: 37
Blev medlem: 11 augusti 2016, 17:23:49

Re: Programmera om bilar.

Inlägg av MSC »

mankan skrev:Mina erfarenheter är från VAG-bilar och till dem finns det mjukvara (bla VCDS, Carista) som via OBD kan läsa ut diverse värden i bilen, ge kommandon och även läsa och skriva diverse EEPROM, dvs ändra konfigurationen av mjukvaran och på så sätt slå på eller av finesser i bilen. Jag har t.ex slagit på Lap timer i konsollen mellan hastighetsmätaren och varvräknaren, fått fram batterimätare i mittkonsollen, och bäst av allt fått Start/Stop-funktionen att komma ihåg om den var av eller på mellan gångerna (dvs den är nu alltid av :-)). Beroende på utrustningsnivå i din bil kan du få fram mer eller mindre dyra finesser. Jag har även orsakat att stereon stängde av sig efter 30 sekunders körning. Numera åtgärdat.

Så mao jag tror inte du behöver modda nån kod i nån MCU utan det räcker troligen att pilla på EEPROM, frågan är bara vilka bitar till vad, om din tillsatsvärmarmodul nu är samma som den med timer.
Detta vore bra, men jag tror vi pratar om olika saker och jag misstänker att detta inte går med Volvo, för VCDS och Carista ligger som jag förstår det ett steg högre, och då krävs det att VAG tillåter denna manipulering via OBD som bestäms av programmeringen via en huvuddator. Jag vet som sagt inget om hur systemen är uppbyggt i bilar, men som jag förstår det så kontrolleras OBD av någon grundläggande mjukvara som tillåter manipulation i systemet och tillgång till mätvärden (alla får rätta mig om jag har fel).

Jag tror inte det finns något liknande till Volvo. Vilka årsmodeller av VAG kan man göra på det här sättet, gäller det bara äldre årsmodeller?
Användarvisningsbild
carpelux
Inlägg: 1866
Blev medlem: 13 oktober 2007, 12:33:33
Ort: Varnhem

Re: Programmera om bilar.

Inlägg av carpelux »

Googla Volvo Vida så hittar du vad som behövs för att programmera parametrarna i bilen.
MSC
Inlägg: 37
Blev medlem: 11 augusti 2016, 17:23:49

Re: Programmera om bilar.

Inlägg av MSC »

Icecap skrev:MSC: numera är µC byggt så att man kan aktivera helt eller delvis skydd av programminnet. Självklart går det att läsa ut minnet - men då måste man etsa bort plasten på µC'n och läsa adress och databussen direkt på själva kretsen. Det är en operation som kostar multum.

Detta ligger i hårdvaran på chippet som innehåller alla delar av programminnet och CPU'n och om du inte är sjusärdeles expert kan du bara glömma att läsa ut programmet.

Sedan finns det ofta många olika enheter, alla skyddade på samma sätt, de kommunicerar med varandra, ofta via en CAN-bus.
Ok, ja det låter som väldigt svårt.

Måste man alltså köpa dessa delar som original, eller finns det "piratdelar"? Om det finns piratdelar så borde det väl finnas kunskaper om hur systemen fungerar?

Varför skulle man inte kunna t.ex. ersätta kontrollen av vissa delar (eller t.o.m. alla delar) i bilen med ett eget kontrollsystem och egen mjukvara?

Nu har jag inte tittat närmare på detta eftersom jag ännu inte äger en Volvo med tillsatsvärmare, jag letar efter en Volvo, men i värsta fall kan man ju bara koppla till ett digitalt eller t.o.m. ett analogt tidur till tillsatsvärmaren, och problemet är löst, det är nog så man får göra i så fall, det är lättare :D Jag har ingen lust att betala 4000 kr i alla fall, och det handlar mest om principen.
MSC
Inlägg: 37
Blev medlem: 11 augusti 2016, 17:23:49

Re: Programmera om bilar.

Inlägg av MSC »

TomasL skrev:
Det finns bara två alternativ, ett mjukvarumässigt skydd, eller genom hårdvara, vilket skydd menar du?
Skyddet i fråga ligger i processorns hårdvara och går inte att kringgå.

Dessutom så ligger de delar som är relevanta numera (för det mesta) inbakade i kislet, ett par lager ned, så det går inte att komma åt fysiskt längre.
Förutom det så har koden sannolikt manipulationsskydd också, med inbäddade checksummor, vilket i sin tur omöjliggör manipulation av enstaka programrader,
Ok, ja det låter omöjligt, jag får fundera på detta.
Användarvisningsbild
Gizmo
Inlägg: 1613
Blev medlem: 8 september 2009, 00:37:45
Ort: Göteborg
Kontakt:

Re: Programmera om bilar.

Inlägg av Gizmo »

Det går alltid att kringgå även hårdvaruskydd. Sedan är ju frågan mer hur mycket tid och pengar man vill offra på det...
Generellt sätt så tror hårdvarutillverkarna så übermycket på sitt eget hårdvaruskydd att de nästan alltid glömmer nån liten detalj, vilket går att utnyttja.

Men. Det känns lite som att gå över ån efter vatten. Kolla om inte det hela är CAN-bus anslutet. Nästan alla biltillverkare kör OBD eller OBD-2, och via den bus:en så kan man komma åt mycket saker.

Lite läsning:
http://hackaday.com/2013/10/29/can-hacking-protocols/
Finns även länkar till lite verktyg och tips där.

Den här verkar ju snabb att slänga ihop:
http://goodfet.sourceforge.net/hardware/goodthopter12/

Jag antar att du redan googlat på prylen i fråga, ditt bilmärke och hacking?
Skriv svar