Étape 9: Reverse engineering : checksum casse-tête
J’ai commencé à lire sur les sommes de contrôle sur Wikipedia et essayé d’appliquer toutes sortes d’algorithmes aux données. Rien ne semblait réellement fonctionner. Puis j’ai remarqué que la somme de contrôle pour n’importe quel touche donnée était identique quel que soit l’ID réseau aléatoire. Le checksum est calculé uniquement basée sur les données de charge utile.
Ma conjecture est qu’il est codé en dur dans la télécommande pour simplifier la conception de puce.
Donc dans cet esprit, j’ai essayé des trucs plus simples. J’ai remarqué que les séquences de 01 et 01 seraient se neutralisent et produire un chéque de 00, et que les séquences de 01 et 10 produirait une somme de contrôle de 11.
Cela fait allusion à un simple algorithme XOR.
Après quelques tâtonnements, j’ai trouvé un algorithme simple qui produit toujours la somme de contrôle correct.
Les deux premiers bits sont XOR'ed avec les 2 deux bits. Le résultat de ceci est XOR'ed avec les deux derniers bits.
Vérifiez l’image pour voir comment se fait le calcul de hcecksum :