Login Register

Vida CEM swapping

A mid-size luxury crossover SUV, the Volvo XC90 made its debut in 2002 at the Detroit Motor Show. Recognized for its safety, practicality, and comfort, the XC90 is a popular vehicle around the world. The XC90 proved to be very popular, and very good for Volvo's sales numbers, since its introduction in model year 2003 (North America). P2 platform.
Post Reply
vtl
Posts: 4724
Joined: 16 August 2012
Year and Model: 2005 XC70
Location: Boston
Has thanked: 114 times
Been thanked: 603 times

Re: Vida CEM swapping

Post by vtl »

vtl wrote: 23 Feb 2022, 21:48
sirloins wrote: 23 Feb 2022, 21:46 I am happy to send you either a 719 or a 720.
Thanks. I think it may be cheaper to buy it local.
Bought 719 locally.

sirloins
Posts: 43
Joined: 5 November 2020
Year and Model: 2010 V50 T5 AWD M66
Location: Ottawa, Canada
Been thanked: 3 times

Post by sirloins »

vtl wrote: 24 Feb 2022, 07:27 Bought 719 locally.
Awesome! Here it is $30 + $10 core fee (CDN) at the pick 'n pull for one.

Here is my experimental branch if you want to take a look https://github.com/cmolson/volvo-cem-cr ... er-attempt

It has all the changes I've made so far, not ideal for a pull request I don't think.

I was able to get a CEM-B yesterday to keep on my bench, so that should be interesting.

User avatar
RickHaleParker
Posts: 7129
Joined: 25 May 2015
Year and Model: See Signature below.
Location: Kansas
Has thanked: 8 times
Been thanked: 958 times

Post by RickHaleParker »

vtl wrote: 24 Feb 2022, 07:05 Yes, the very first software version cracked my CEM in under 5 minutes. It is much longer now for a reason :)
I recall why and there is a reason I should. :lol:
This one is doing 100s of samples without the speed reduction. He saying he can make it faster.
⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙
1998 C70, B5234T3, 16T, AW50-42, Bosch Motronic 4.4, Special Edition package.
2003 S40, B4204T3, 14T twin scroll AW55-50/51SN, Siemens EMS 2000.
2004 S60R, B8444S TF80 AWD. Yamaha V8 conversion
2005 XC90 T6 Executive, B6294T, 4T65 AWD, Bosch Motronic 7.0.

blasaab
Posts: 34
Joined: 24 March 2021
Year and Model: Volvo xc90/V50/144
Location: Perstorp
Has thanked: 4 times
Been thanked: 3 times

Post by blasaab »

sirloins wrote: 24 Feb 2022, 09:08
vtl wrote: 24 Feb 2022, 07:27 Bought 719 locally.
Awesome! Here it is $30 + $10 core fee (CDN) at the pick 'n pull for one.

Here is my experimental branch if you want to take a look https://github.com/cmolson/volvo-cem-cr ... er-attempt

It has all the changes I've made so far, not ideal for a pull request I don't think.

I was able to get a CEM-B yesterday to keep on my bench, so that should be interesting.
Tested this and cracked direct. i tested 3 times and got same result
Attachments
V50 cracked.txt
(68.09 KiB) Downloaded 148 times

vtl
Posts: 4724
Joined: 16 August 2012
Year and Model: 2005 XC70
Location: Boston
Has thanked: 114 times
Been thanked: 603 times

Post by vtl »

blasaab wrote: 24 Feb 2022, 23:07 Tested this and cracked direct. i tested 3 times and got same result
Thanks.

My 719 is on the way. Once we understand the issue, come up with a proper patch and confirm that the rest of use cases still work, the change will fly right in.

vtl
Posts: 4724
Joined: 16 August 2012
Year and Model: 2005 XC70
Location: Boston
Has thanked: 114 times
Been thanked: 603 times

Post by vtl »

@sirloins any tricks in wiring the 719? I see messages from ID 0x7de up powering it up, however it does not react to the read p/n requests.

x119
Posts: 5
Joined: 28 February 2022
Year and Model: MY16 XC90
Location: SW
Been thanked: 2 times

Post by x119 »

I appreciate this is very P1-3 focussed thread; but is there interest in SPA?

It's Seed and Key based..

I'm aware certain commercial outfits can do it with a VIDA log file only, thus it's possible. Just can't find ANY discussion online at all.

I have all the necessary tools at my disposal i.e I can trigger seed reqs etc. just need knowledge that is currently lacking! Also have tools to enable testing of the key for success. All offline - no servers req ;)

Any pointers or direction is appreciated without derailing too much - I've read all 173 pages over the last few nights and your efforts are valiant for the other platform guises!

User avatar
RickHaleParker
Posts: 7129
Joined: 25 May 2015
Year and Model: See Signature below.
Location: Kansas
Has thanked: 8 times
Been thanked: 958 times

Post by RickHaleParker »

x119 wrote: 28 Feb 2022, 13:50 It's Seed and Key based..
Do you have any clue what the SPA/CMA challenge algorithm is?

If I recall correctly, it would take way to long to crack the SPA/CMA through the OBD connector because there is something like a 5 -10 second timeout after three failed attempts.

60/10 * 3 = 18 attempts per minute.

There is a rumor that the Keys can be calculated from accessible data but it just a rumor until somebody can prove otherwise.
Last edited by RickHaleParker on 28 Feb 2022, 19:15, edited 1 time in total.
⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙
1998 C70, B5234T3, 16T, AW50-42, Bosch Motronic 4.4, Special Edition package.
2003 S40, B4204T3, 14T twin scroll AW55-50/51SN, Siemens EMS 2000.
2004 S60R, B8444S TF80 AWD. Yamaha V8 conversion
2005 XC90 T6 Executive, B6294T, 4T65 AWD, Bosch Motronic 7.0.

vtl
Posts: 4724
Joined: 16 August 2012
Year and Model: 2005 XC70
Location: Boston
Has thanked: 114 times
Been thanked: 603 times

Post by vtl »

vtl wrote: 28 Feb 2022, 10:31 @sirloins any tricks in wiring the 719? I see messages from ID 0x7de up powering it up, however it does not react to the read p/n requests.
So, this makes the cracker work with 719 CEM:

Code: Select all

@@ -405,6 +405,8 @@ bool cemUnlock (uint8_t *pin, uint8_t *pinUsed, uint32_t *latency, bool verbose)
 
   /* a reply of 0x00 indicates CEM was unlocked */
 
+  delay(2);
+
   return reply[2] == 0x00;
 }
 
Apparently CEM needs a quiet time to be crackable (time for what? flush instruction caches?) Sirloins' branch allows more time between crack requests and that substitutes for "quiet time".

vtl
Posts: 4724
Joined: 16 August 2012
Year and Model: 2005 XC70
Location: Boston
Has thanked: 114 times
Been thanked: 603 times

Post by vtl »

Something is up with Teensy: it's TSC is not stable. The more Teensy sleeps, the better is the latency detection. The slower the clock, the better it works. Running Teensy at 24 MHz gave the best results.

I ended up going sirloins'/RichHaleParker's way and driving CAN_L_PIN state transition via interrupt handler while running at full 600 MHz (to reduce the impact of interrupt handler). It is super-stable, can detect the right byte in position reliably in one pass:

Code: Select all

Candidate PIN 13 49 64 01 -- -- : brute forcing bytes 4 to 5 (2 bytes), will take up to 7 seconds
Progress: 0%..5%..10%..15%..20%..25%..30%..35%..40%..45%..50%..55%..60%..65%..70%..75%..80%..85%..done

found PIN: 13 49 64 01 39 88
PIN is cracked in 34.60 seconds
Validating PIN
PIN verified.
done
Resetting all ECUs.
Will test with other CEMs I have and push the code to github branch for testing.

Post Reply
  • Similar Topics
    Replies
    Views
    Last post