Afficher un message
Vieux 26/05/2017, 22h05  
VroumVroum
T-E master
 
Avatar de VroumVroum
 
Date d'inscription: août 2014
Localisation: France,Toulouse
Âge: 55
Messages: 2 057
Thanks: 474
Thanked 1 417 Times in 762 Posts
Pouvoir de réputation: 33
VroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond reputeVroumVroum has a reputation beyond repute
Par défaut

Citation:
Envoyé par MrRorry Voir le message
Algorithme ISK vers PIN (pour Megane 2 / Scenic 2)

A savoir, l'algo utilisé consiste en general pour ce constructeur a decaler, repositionner, inverser quelques bits, xor avec clef predefinie...
nous allons voir en particulier celui de la Megane 2 / Scenic 2

Les 6 octets de l'isk pour notre exemple,
ISK = FF 82 5E A0 8C 2E

on represente ces 6 octets sous leur forme binaire:

----FF-------82--------5E--------A0-------8C-------2E----
11111111 10000010 01011110 10100000 10001100 00101110


qui nous donne cette chaine binaire de 48 bits: 111111111000001001011110101000001000110000101110

position du bit 0 -> 111111111000001001011110101000001000110000101110 <- position du bit 47 | (0<->47) = 48 bits

nous allons creer virtuellement une nouvelle chaine binaire qui sera notre resultat (en gros la chaine binaire de notre pin)
notre chaine binaire de notre isk sera appelée ISKbitsArray et pour notre pin PINbitsArray par exemple,

PINbitsArray[0] = ISKbitsArray[19]
PINbitsArray[1] = ISKbitsArray[29]
PINbitsArray[2] = ISKbitsArray[39]
PINbitsArray[3] = ISKbitsArray[4] avec inversion de bit pour celui la (1 deviendra 0 et vice-versa)
PINbitsArray[4] = ISKbitsArray[24]
PINbitsArray[5] = ISKbitsArray[46]
PINbitsArray[6] = ISKbitsArray[31]
PINbitsArray[7] = ISKbitsArray[12]
PINbitsArray[8] = ISKbitsArray[16]
PINbitsArray[9] = ISKbitsArray[28]
PINbitsArray[10] = ISKbitsArray[7] avec inversion de bit pour celui la (1 deviendra 0 et vice-versa)
PINbitsArray[11] = ISKbitsArray[10]
PINbitsArray[12] = ISKbitsArray[15]
PINbitsArray[13] = ISKbitsArray[0]
PINbitsArray[14] = ISKbitsArray[40]
Etc... jusqu'au 48eme bit

qui nous donne 100011000000010101010101100011100110101001101100

une fois terminé on redivise notre chaine binaire en 6 octets (8 bits x 6 octets = 48 bits)

---8C--------05--------55-------8E--------6A-------6C---
10001100 00000101 01010101 10001110 01101010 01101100

voila notre pin. PIN = 8C 05 55 8E 6A 6C

Tres simple, on devrait meme plutot appeler ca un encodage qu'un algorithme.
Bonsoir,
bravo si tu as trouver ceci tous seul , c'est effectivement + un encodage , je fais de même de temps en temps pour obfuscer certaine chose , çà ralenti la rétro .
A+
VroumVroum est déconnecté   Réponse avec citation
The Following User Says Thank You to VroumVroum For This Useful Post:
guyguy307 (23/06/2017)