Vida CEM swapping
-
dikidera
- Posts: 1305
- Joined: 15 August 2022
- Year and Model: S60 2005
- Location: Galaxy far far away
- Has thanked: 67 times
- Been thanked: 175 times
It still is, back in 2012 as I was starting out writing software I was blown away of the realization that HEX, or say a 256-bit HASH was just a really big number represented in base16.
-
rkam
- Posts: 102
- Joined: 19 October 2022
- Year and Model: 14473_96090_XC7007
- Location: Norway
- Has thanked: 5 times
- Been thanked: 25 times
When using this seed/key security protocol there are 65536 pin codes that will give the same key for the received seed. The pin number found with the cracker is not the same as stored in the CEM, but will result in the same key and therefore unlock the CEM. The pin in the CEM is all numbers.
-
vtl
- Posts: 4727
- Joined: 16 August 2012
- Year and Model: 2005 XC70
- Location: Boston
- Has thanked: 114 times
- Been thanked: 606 times
There's util/seed-gen.c in p3 branch:
For a given seed+key collision it finds 400-600 matching pins in decimal coding (numbers only). Hexadecimal pin, as rkey has mentioned, has 65536 collisions.
P3 (Ford's?) pin is a good example of what happens if you just throw advanced things in like hashes or cryptography, but do not do it properly. Compare it to P2 brick CEM linear pin compare routine that does not jump out on the first mismatch and continues matching the rest of the pin. Simple, if not straight dumb, yet fully resilient to timing attack.
P2 L-shaped CEM could have been done even more resilient if Volvo would use the same pin routine and lock the Renesas built-in flash, so it could not be read externally by soldering wires.
Now ask yourself how many security holes does a typical modern tablet on the wheels exposes to dear hackers...
Code: Select all
* Finds all matching pins for a given seed+key match
*
* $ gcc -Ofast -o seed-gen seed-gen.c
* $ ./seed-gen --seed "8f ca 96" --key "19 30 48" --pps 866
*
Code: Select all
$ ./seed-gen --seed "47 db 87" --key "ff ff cb db 0e" --pps 886
Searching all hash collisions for SEED 47 db 87, KEY ff ff cb at 886 tries per second
2.69 hrs [ 1] PIN 00 08 57 92 22
5.81 hrs [ 2] PIN 00 18 52 80 30
8.40 hrs [ 3] PIN 00 26 80 15 65
...
2116.97 hrs [ 413] PIN 67 52 30 39 04
2125.48 hrs [ 414] PIN 67 79 43 09 54
2126.72 hrs [ 415] PIN 67 83 38 88 95
P2 L-shaped CEM could have been done even more resilient if Volvo would use the same pin routine and lock the Renesas built-in flash, so it could not be read externally by soldering wires.
Now ask yourself how many security holes does a typical modern tablet on the wheels exposes to dear hackers...
-
Volvisti
- Posts: 11
- Joined: 5 September 2023
- Year and Model: C30
- Location: Aussie
- Been thanked: 1 time
Hello,
i am a bit confused, i build the cracker, have used twisted cables for can and the can high/low driver from the schematics, but i get everytime i run the program a different result, i also increased the sample rate, still every run a different result.
i tried to run with external power, off the car battery (battery was charged) also with battery charger, no luck.
any suggestions what i might do wrong?
thanks
V
i am a bit confused, i build the cracker, have used twisted cables for can and the can high/low driver from the schematics, but i get everytime i run the program a different result, i also increased the sample rate, still every run a different result.
i tried to run with external power, off the car battery (battery was charged) also with battery charger, no luck.
any suggestions what i might do wrong?
thanks
V
-
oscilloscope
- Posts: 285
- Joined: 20 May 2022
- Year and Model: 2005
- Location: uk
- Has thanked: 27 times
- Been thanked: 11 times
This kinda reminds me of ARM mixed with z80 or possibly 6502 assembly routines afew of immediate addressing hashes # ? Zero page (if this is doing that)dikidera wrote: ↑05 Nov 2023, 05:23 I may not have studied compiler theory, but I for sure can tell that whatever compiler emitted this...is terrible. I've seen similar such code in all SH2 binaries I've studied. So many redundant operations.
sub_30E60:
var_2= -2
add #-4, r15 //redundant?
mov.w #PADR_W, r2
mov.w @r2, r0
mov.w r0, @(2,r15) // redundant
mov.w @(2,r15), r0 //redundant
extu.w r0, r0
mov.l #off_8000, r3
and r3, r0
cmp/eq r3, r0
movt r0
add #4, r15 //why even use the stack in the first place?
rts
nop
Do you know what this assembly is from architecture etc ?
- TonyToronto
- Posts: 13
- Joined: 15 October 2023
- Year and Model: 2007 XC90
- Location: Toronto, Canada
- Has thanked: 5 times
- Been thanked: 1 time
Hi,
has anyone been able to get pin code from famous 8690720 CEM? I have one here that will not crack. i tried 4-5 times, always comes up with different first 3 sets, and than just fails to crack.
I have another one 30765015, cracked 1st try.
EDIT: was able to read it with P1 fork, quick too.
has anyone been able to get pin code from famous 8690720 CEM? I have one here that will not crack. i tried 4-5 times, always comes up with different first 3 sets, and than just fails to crack.
I have another one 30765015, cracked 1st try.
EDIT: was able to read it with P1 fork, quick too.
Last edited by TonyToronto on 25 Nov 2023, 18:11, edited 1 time in total.
- TonyToronto
- Posts: 13
- Joined: 15 October 2023
- Year and Model: 2007 XC90
- Location: Toronto, Canada
- Has thanked: 5 times
- Been thanked: 1 time
What CAN transceivers are you using? There are lot of fake stuff out here. USB or 12V to power Teensy? And CEM part number?Volvisti wrote: ↑18 Nov 2023, 15:25 Hello,
i am a bit confused, i build the cracker, have used twisted cables for can and the can high/low driver from the schematics, but i get everytime i run the program a different result, i also increased the sample rate, still every run a different result.
i tried to run with external power, off the car battery (battery was charged) also with battery charger, no luck.
any suggestions what i might do wrong?
thanks
V
-
- Similar Topics
- Replies
- Views
- Last post
-
- 1 Replies
- 6431 Views
-
Last post by RickHaleParker
-
- 5 Replies
- 8699 Views
-
Last post by forumoto






