Ce que nous sommes entrain de faire avec des outils, winols, kess, ktag ...etc nous parrait simple mais si on s'introduit dans l'histoire, je vais vous montrer un petit exemple de calcule de checksum sur l'un des appareil qu'on utilise dans nos poches,
votre GSM, le numéro de série de votre téléphone qui est indispensable lors de connexion au réseau lors d'allumage pour être en relation sur votre réseau GSM, le System vérifie aussi le checksum du téléphone s'il est bon ou pas, la même chose pour le véhicule le calculateur vérifie la somme de Control a partir de quelques bit sur la flash interne ou externe a partir d'un algorithme caché.
Donnons l'exemple du téléphone,
IMEI : 35151617181921
Nous allons prendre le 2eme chiffre le 4eme 6eme 8eme ...etc
[(5x2 5x2 6x2 7x2 8x2 9x2 1x2) = (10, 10, 12, 14, 16, 18, 2)]
(1+0+1+0+1+2+1+4+1+6+1+8+2) + ( 3+1+1+1+1+1+2 ) = 38
Nous allons prendre le chiffre qui est plus grand que la sommes 38 et peut être dévisé par 10 ( 40 dans ce cas )
40 - 38 = 2
2 est la somme du contrôle pour cet imei :)
Donc le bon IMEI : 35151617181921-2
si l'opérateur vérifie ce chiffre et qu'il n'est pas 2 avec cet imei, vous ne serez pas connecté au réseau GSM.
faite ce calcule avec le numéro de série de votre téléphone vous allez le savoir ;)
exactement la même chose pour l’Écu moteur, airbag ...etc
quelques bit pris de quelques coin bien sur caché et un algorithme caché pour mettre un ou deux bit ou peut être plus (dépends du système) pour que l'ecu se met en marche.
pour le mode expert, voici l'algo si vous ne voulez pas trop tester a la main, a l'aide de visual basic mettez compiler ce code:
Citation:
algorithme pour recevoir le dernier chiffre crc imei
On Error Resume Next
Table = Array(Array(0, 8, 6, 4, 2, 9, 7, 5, 3, 1), Array(0, 9, 8, 7, 6, 5, 4, 3, 2, 1))
Position = 1
For I = 1 To 14
Checksum = Checksum + Table(Position)(Mid(IMEI, I, 1))
If Position = 1 Then
Position = 0
Else
Position = 1
End If
Next I
Do While Checksum >= 10
Checksum = Checksum - 10
Loop
End Function
|
a bientôt