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
aaivar
Posts: 14
Joined: 31 March 2021
Year and Model: v70 2015
Location: Latvia
Has thanked: 1 time

Re: Vida CEM swapping

Post by aaivar »

DHA work in EEprom data and make new keys , change lost synh

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

Post by vtl »

aaivar wrote: 08 Oct 2021, 08:06 DHA work in EEprom data and make new keys , change lost synh
Do you know where EEPROM encryption key is located in the flash dump?

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: 08 Oct 2021, 07:21 What car is it? Also is it sending the message over CAN HS? CEM has ECU id 0x40 on CAN LS.
It is a CEM-L out of a 2006 V70 on the bench. Things where getting squirrely ... I'll look into this later.

Might have something for you later. I was experimenting with your new code. I ran it with CALC_BYTES = 6 and it almost got all six. That is with B3 - B5 the correct weights where making the shortlist up to a point. I have not ran through all the data yet but at first glance it look like if you select B0 - B2 by latency then B3 - B5 by lowest STD it would get all six correct.
⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙
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: 4726
Joined: 16 August 2012
Year and Model: 2005 XC70
Location: Boston
Has thanked: 114 times
Been thanked: 606 times

Post by vtl »

RickHaleParker wrote: 08 Oct 2021, 08:46 Might have something for you later. I was experimenting with your new code. I ran it with CALC_BYTES = 6 and it almost got all six. That is with B3 - B5 the correct weights where making the shortlist up to a point. I have not ran through all the data yet but at first glance it look like if you select B0 - B2 by latency then B3 - B5 by lowest STD it would get all six correct.
Max CALC_BYTES is 4, or you'll be getting array access that is out of boundary. The algo uses +1 and +2 pin positions while it assesses latency, so it can't do more than 4 positions.

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

Post by vtl »

If it is able to find B0-B2 reliably, it would only take up to ~11 minutes to brute force the rest. Good enough already.

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: 08 Oct 2021, 08:59 If it is able to find B0-B2 reliably, it would only take up to ~11 minutes to brute force the rest. Good enough already.
Ran it again with CALC_BYTES 4 & CALC_BYTES 6. It is unreliable. Stick with CALC_BYTES 3 .
⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙
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.

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 »

RickHaleParker wrote: 08 Oct 2021, 02:34 If the PIN is 85 20 47 55 20 00 and the shuffle order is 3 1 5 0 2 4 should the detection order be 55 20 20 -- -- -- not 55 20 00 -- -- -- ?

85 20 47 55 20 00
03 01 05 00 02 04
------------------------
55 20 20 85 00 47
Anybody got an answer for this?
Detection order is 55 20 00 -- -- -- and it works.
Did I doing something wrong when I shuffled them above?
⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙
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: 4726
Joined: 16 August 2012
Year and Model: 2005 XC70
Location: Boston
Has thanked: 114 times
Been thanked: 606 times

Post by vtl »

RickHaleParker wrote: 08 Oct 2021, 10:13
RickHaleParker wrote: 08 Oct 2021, 02:34 If the PIN is 85 20 47 55 20 00 and the shuffle order is 3 1 5 0 2 4 should the detection order be 55 20 20 -- -- -- not 55 20 00 -- -- -- ?

85 20 47 55 20 00
03 01 05 00 02 04
------------------------
55 20 20 85 00 47
Anybody got an answer for this?
Detection order is 55 20 00 -- -- -- and it works.
Did I doing something wrong when I shuffled them above?
You are doing it in reverse: shuffling CAN/transport bytes to get in-flash bytes. Should do in reverse, the algo searches the in-flash bytes.

Code: Select all

85 20 47 55 20 00 <- what you send over CAN
0  1  2  3  4  5

55 20 00 85 47 20 <- how it looks like in flash
3  1  5  0  2  4

aaivar
Posts: 14
Joined: 31 March 2021
Year and Model: v70 2015
Location: Latvia
Has thanked: 1 time

Post by aaivar »

vtl wrote: 08 Oct 2021, 08:23
aaivar wrote: 08 Oct 2021, 08:06 DHA work in EEprom data and make new keys , change lost synh
Do you know where EEPROM encryption key is located in the flash dump?
yes

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: 08 Oct 2021, 10:32 You are doing it in reverse: shuffling CAN/transport bytes to get in-flash bytes. Should do in reverse, the algo searches the in-flash bytes.
I forgot you consider what is send over the Com line in order ( decrypted ) and what is in flash shuffled ( encrypted ).
The way I think is you encrypt to send and decrypt to use. That is what got me inverted.

85 20 47 55 20 00
00 01 02 03 04 05
------------------------
55 20 00 85 47 20
03 01 05 00 02 04
⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙
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.

Post Reply
  • Similar Topics
    Replies
    Views
    Last post