-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KI221 & bench issues #21
Comments
2214423621 |
2214422021 |
2214425021 |
07 F4 0F 21 D7 FF FF correct key (from yt) |
From yt: |
2214423621 |
just for notice
1C 00 B2 seems to be some of SW identifier. |
Just a small note, for the unknown sw key, it seems like there's a second frame that might be missed out:
|
Yes, missed 30 one 05,877 60A 8 02 27 01 FF FF FF FF FF 34,826 60A 8 02 27 01 FF FF FF FF FF 09,238 60A 8 02 27 01 FF FF FF FF FF |
Thanks for the update, here's the iso-tp interpretation of the raw frames:
|
2219024702 [01] known list
|
here was a mistake with one symbol.
in this case, [FD] seed xor f509cb39 = key |
It looks very similar to ki211.
|
I went to check if it was using KIAlgo1 as the format appears similar enough. Unfortunately it does not use KIAlgo1 that we have, or it uses a modified variant. KIAlgo1 is partially reversible, leaving about 9 bits (or less) of uncertainty where information is lost during the root key rotation. 9 bits is a small enough keyspace to search through in reasonable time, so we can reliably recover a KIAlgo1 root key if a seed/key pair is known. I've written a small application to extract the root key given a valid KIAlgo1 seed/key pair. It is unpacked, so curious folks can look at it via ILSpy or similar ( However, all 221 seed/key pairs will not generate a solution, which implies that 221 does not use the same algo (..or I am doing something wrong). There are many possibilities for variations:
I can't test these out, however I can at least confirm that the stock KIAlgo1 does not work with the 221. |
Good! Amazing as always! |
First attempt to brute failed.
Going to try other tools... |
While checking out KI221.CBF, one particular compiled script referenced by The script sets up a parameter that behaves like a root key at the start of the function ( When using the values from an earlier post for I've searched through the firmware files below to identify the root keys. There are only 2 unique values as far as I can tell:
Firmware list:
I have created unique entries (KI221_xxxx_L7) for each variant above, and checked them with the seed/key pairs in this thread. With all of your feedback, if it is working correctly, we may be able to complete this issue. As for the |
Thanks for the calc! |
For Unlock Ecu purposes - it's done. |
Hooked up existing keygens to define versions for key generation.
Possible levels 2701 (2702) / 27FD(27FE).
SW definition done by "Functional software", another name is "KSS applikation"
Here's main definition list:
2214420821_KSS_Appl_v19_30AMG
2214422021_KSS_Appl_v12_60
2214422121_KSS_Appl_v12_70
2214422321_KSS_Appl_v17_30
2214423621_KSS_Appl_v19_30
2214424021_KSS_Appl_v23_40
2214424621_KSS_Appl_v31_40
2214424721_KSS_Appl_v31_50
2214425021_KSS_Appl_v33_30
2219022402_KSS_Appl_v46_30
2219023000_KSS_Appl_v51_30
2219024702_KSS_Appl_v53_30
2219024902_KSS_Appl_v34_30
2219025301_KSS_Appl_v45_50
2219028901_KSS_Appl_v52_30
2219029600_KSS_Appl_v45_40
Each sw has its own key, and seems it uses "xor" for response.
Abrites does 2701 in 97ms
For now im not able to get response to 2701 request on bench, Cant figure out reason, i tried solo KI, KI +ZGW, KI+ZGW+EIS withought success.
Vediamo connects aswell, but getting 7F response to 2701.
CGMB and Abrites fails to read eeprom with "Security fault"
Just for note : attached CAN tracer between OBD and Abrites on car - and got same "Security fault" - so..... thats maybe timing issue - but bench must work way faster ...
Abrites sends 1092 X 3 times then 01 level unlock then read eeprom, full reading takes 13 seconds.
Its might take some time to get all sw keys but if we wont start - we never finish.
I think if we get couple keys then we will have hint to decompile all list.
For now i can read EE from customer cars X-times each with logging, to get valid pairs.
Lets do it
The text was updated successfully, but these errors were encountered: