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
alevol
Posts: 31
Joined: 4 August 2021
Year and Model: 2005 S60
Location: Finland
Has thanked: 6 times
Been thanked: 3 times

Re: Vida CEM swapping

Post by alevol »

Then check keep alive

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

Post by vtl »

99-04 brick-shaped P2 CEMs are not supported.

urosm
Posts: 29
Joined: 24 May 2012
Year and Model: 2015 Volvo XC70 D5
Location: Montenegro
Has thanked: 10 times

Post by urosm »

Hello to all!
I tried to crack CEM from the 2012 Volvo XC90, but I cannot for some reason.
Tried with OBD and on the bench. Same result. Also, I tried different shuffles, but without success.
So here are the logs if you find a problem, please fix it.

I have PIN from this CEM because I read it with SMOK and found a PIN. So if you need it, I'll send it to you.

Thanks!
2012_Volvo_XC90_CEM_PIN_not_OK.rar
(48.35 KiB) Downloaded 145 times
Volvo 744 TDIC SOLD, 1989. ; 1997. - 2000.
Volvo 855 GLT + LPG Estate SOLD, 1996. ; 1998. - 2020.
Volvo V70 D5 SOLD, 2004. ; 2013. - 2021.
Volvo XC70 D5 SOLD, 2007. ; 2017. - 2021.
Nissan Pathfinder DRIVING, 2007. ; 2019. -
Volvo XC70 D5 DRIVING, 2015. ; 2021. -
Volvo XC90 D5 DRIVING, 2008. ; 2022. -

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 »

urosm wrote: 01 Jun 2022, 15:13 2012_Volvo_XC90_CEM_PIN_not_OK.rar
It looks like it is one of the stubborn ones that has trouble getting the third byte. You can set CALC_BYTES to 2 in the VTL:Master and brute force the last 4. You might try Sirlions interrupt branch or one of his other branches.
⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙⸙
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: 4723
Joined: 16 August 2012
Year and Model: 2005 XC70
Location: Boston
Has thanked: 114 times
Been thanked: 603 times

Post by vtl »

urosm wrote: 01 Jun 2022, 15:13 Hello to all!
I tried to crack CEM from the 2012 Volvo XC90, but I cannot for some reason.
Tried with OBD and on the bench. Same result. Also, I tried different shuffles, but without success.
So here are the logs if you find a problem, please fix it.

I have PIN from this CEM because I read it with SMOK and found a PIN. So if you need it, I'll send it to you.

Thanks!

2012_Volvo_XC90_CEM_PIN_not_OK.rar
What is the real third byte?

urosm
Posts: 29
Joined: 24 May 2012
Year and Model: 2015 Volvo XC70 D5
Location: Montenegro
Has thanked: 10 times

Post by urosm »

CEM PIN is: 15 52 29 21 65 26
Volvo 744 TDIC SOLD, 1989. ; 1997. - 2000.
Volvo 855 GLT + LPG Estate SOLD, 1996. ; 1998. - 2020.
Volvo V70 D5 SOLD, 2004. ; 2013. - 2021.
Volvo XC70 D5 SOLD, 2007. ; 2017. - 2021.
Nissan Pathfinder DRIVING, 2007. ; 2019. -
Volvo XC70 D5 DRIVING, 2015. ; 2021. -
Volvo XC90 D5 DRIVING, 2008. ; 2022. -

duzi
Posts: 21
Joined: 16 September 2021
Year and Model: S60
Location: Lithuania
Has thanked: 18 times
Been thanked: 5 times

Post by duzi »

urosm wrote: 01 Jun 2022, 15:13
I have PIN from this CEM because I read it with SMOK and found a PIN. So if you need it, I'll send it to you.
:?: I thought smok" reads only P3 platform.. you use UDS option in smok ?

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

Post by vtl »

urosm wrote: 02 Jun 2022, 15:03 CEM PIN is: 15 52 29 21 65 26
Third byte (shuffled) should be 65, and it was indistinguishable in the very first pass and got filtered out. You can email me your dump, I may find time to load it into my CEM and try with my cracker, which seems to work fine in cases when others fail.

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

Post by vtl »

urosm wrote: 01 Jun 2022, 15:13 Hello to all!
I tried to crack CEM from the 2012 Volvo XC90, but I cannot for some reason.
Tried with OBD and on the bench. Same result. Also, I tried different shuffles, but without success.
So here are the logs if you find a problem, please fix it.
Here's your pin compare routine disassembled. Base address was set to 0, which is not the case in the real CEM, but the offsets remain correct, which suffices for our analysis.
cem-bad-3d-byte.png
cem-bad-3d-byte.png (84.03 KiB) Viewed 586 times
I draw a line through each cache line boundary. Don't know for sure whether it's a cache line, CPU frontend fetch unit , flash line or something else. But these 16 bytes is what executes in constant time from the cracker's point of view, while crossing the boundary is what yields latency that the cracker can detect. Each time CPU has to cross the line, add +1 to imaginary latency.

The cracker goes from byte 0 to byte 3 sequentially. 0-3 is called position. For each position the cracker enumerates the whole BCD range for the position itself and for the two following positions (that's the reason we can't crack more than 4 bytes). Going over 3 bytes/position accumulates enough discrepancy in latency to be noticeable for the algorithm.

In the picture above you can see an example of extremely unfavorable code placement: the boundary comes right through the conditional jump instruction.

When the cracker cracks positions 0 and 1, CEM's CPU does not cross the green line in case of mismatch. On bad cmp instruction it jumps to 0x4caf9, which is another cache line, and it adds +1 to latency, too.

When the cracker cracks position 2, it crosses the green line. After that, jumping to the "failed" branch, to 0x4caf9, adds no latency. The code executes in constant time and yields no good latency discrepancy.

This makes me think if the algo can detect such problem and switch to, say, +1 position enumeration?

oscilloscope
Posts: 285
Joined: 20 May 2022
Year and Model: 2005
Location: uk
Has thanked: 27 times
Been thanked: 11 times

Post by oscilloscope »

is codewarriror used too decompile the micro's ?

Post Reply
  • Similar Topics
    Replies
    Views
    Last post