2017-09-08 9 views
0

J'essaie de désosser la somme de contrôle d'un protocole. Il semble s'agir d'un protocole basé sur un grignotage de 4 bits. Ce qui suit est une représentation binaire d'un paquet dans le protocole:Reverse engineering de somme de contrôle de protocole

1000 0001 1000 0001 0000 0001 1111 0010 1010 : 1001 
1000 0001 1000 0001 0000 0001 1111 0010 1011 : 1010 
1000 0001 1000 0001 0000 0001 1111 0010 1100 : 1111 
1000 0001 1000 0001 0000 0001 1111 0010 1101 : 0000 
1000 0001 1000 0001 0000 0001 1111 0010 1110 : 1101 
1000 0001 1000 0001 0000 0001 1111 0010 1111 : 1110 
1000 0001 1000 0001 0000 0001 1111 0011 0000 : 0100 
1000 0001 1000 0001 0000 0001 1111 0011 0001 : 0011 
1000 0001 1000 0001 0000 0001 1111 0011 0010 : 0010 
1000 0001 1000 0001 0000 0001 1111 0011 0011 : 0001 
1000 0001 1000 0001 0000 0001 1111 0011 0100 : 1000 
1000 0001 1000 0001 0000 0001 1111 0011 0101 : 0111 
1000 0001 1000 0001 0000 0001 1111 0011 0110 : 0110 
1000 0001 1000 0001 0000 0001 1111 0011 0111 : 0101 
1000 0001 1000 0001 0000 0001 1111 0011 1000 : 1100 
1000 0001 1000 0001 0000 0001 1111 0011 1001 : 1011 
1000 0001 1000 0001 0000 0001 1111 0011 1010 : 1010 
1000 0001 1000 0001 0000 0001 1111 0011 1011 : 1001 
1000 0001 1000 0001 0000 0001 1111 0011 1100 : 0000 
1000 0001 1000 0001 0000 0001 1111 0011 1110 : 1110 
1000 0001 1000 0001 0000 0001 1111 0011 1111 : 1101 
1000 0001 1000 0001 0000 0001 1111 0100 0000 : 0101 
1000 0001 1000 0001 0000 0001 1111 0100 0001 : 0110 
1000 0001 1000 0001 0000 0001 1111 0100 0010 : 0111 
1000 0001 1000 0001 0000 0001 1111 0100 0011 : 1000 
1000 0001 1000 0001 0000 0001 1111 0100 0100 : 0001 
1000 0001 1000 0001 0000 0001 1111 0100 0101 : 0010 
1000 0001 1000 0001 0000 0001 1111 0100 0110 : 0011 
1000 0001 1000 0001 0000 0001 1111 0100 0111 : 0100 

Le dernier demi-octet (après le « : ») est une sorte de contrôle. Je ne peux pas comprendre comment c'est calculé. Je ne suis même pas sûr que cela prenne en compte tous les champs précédents. La plupart (sinon la totalité) des 36 autres bits font partie d'un simple compteur incrémenté.

Si quelqu'un peut aider à comprendre ce que l'algorithme utilisé pour calculer le csum, cela serait grandement apprécié.

  • Tom
+0

Pouvez-vous nourrir ce que vous voulez dans ce pour voir comment les sommes de contrôle sortent? Si c'est le cas, je recommande d'utiliser des lignes de 2, 4, 8 et 16 lignes, chacune identique à 0, puis toutes les 1 (un total de 8 fichiers), puis de comparer les résultats. Cela devrait être plus instructif que de regarder le comptoir. J'ai jeté un coup d'oeil rapide et il semble qu'il y ait une sorte de modèle d'escalier qui se passe mais cela ne semble pas être simple. – Patrick87

Répondre

0

I figured it out, avec l'aide d'une personne anonyme sur IRC. Il s'avère que ce n'était pas le paquet complet, il y avait plus de bits qui le précèdent. Après cela, il s'agit d'un simple XOR de toutes les valeurs plus un mod 16.