2016-12-05 1 views
0

J'essaie quelques jours pour obtenir le type de CRC avec le flux hexagonal suivant (reniflé avec Wireshark):Calcul CRC/Checksum de flux hexagonal (reniflée)

Les données Hex i reniflé: 0000001ec001075465737431323308557365726e616d650850617373776f7264d224

cela devrait être les données dans HEX: 0000001ec001075465737431323308557365726e616d650850617373776f7264

Ainsi, les 4 derniers chiffres sont la somme de contrôle, dans ce cas D224

J'ai utilisé plusieurs extraits de code (PHP, Java), et certains sites calcuation de somme de contrôle en ligne: .: par exemple http://www.scadacore.com/field-applications/programming-calculators/online-checksum-calculator/

Mais je ne reçois pas la valeur CRC correcte.

Merci!

Update 1
Voici plusieurs flux hexagonaux avec CRC inclus (les 4 derniers chiffres):

  • 0000001dc001045465737409557365726e616d65310950617373776f726431cc96
  • 0000001dc001045465737409557365726e616d65320950617373776f72643289d9
  • 0000001dc001045465737409557365726e616d65330950617373776f726433b51c
  • 0000001dc001045465737409557365726e616d65340 950617373776f7264340347
  • 0000001dc001045465737409557365726e616d65350950617373776f7264353f82
+0

Vous auriez besoin de plus d'exemples pour effectuer l'ingénierie inverse du CRC. –

+0

@MarkAdler J'ai ajouté plus de flux hexadécimaux avec crc inclus. –

Répondre

1

Il semble être le ARC CRC, polynôme 0x8005, réfléchie, zéro valeur initiale et pas XOR finale, si je jette la 0000001d initiale sur chaque message, et prendre la CRC à la fin être mettre dans le courant dans l'ordre little-endian.

+0

Si je mets mon flux hexadécimal comme le dernier "0000001dc001045465737409557365726e616d65350950617373776f726435" sur ce site: http://www.sunshine2k.de/coding/javascript/crc/crc_js.html et choisissez CRC width CRC-16, Predefined: CRC16_ARC J'ai comme résultat 0xFFB2, et non 0x3f82. Ai-je eu tort? - THX! –

+0

Oui, vous n'avez pas supprimé le '0000001d' initial comme je l'ai dit. –

+0

Toi, tu es le héros! Merci beaucoup! –