Wie könnte ich denke, eine Prüfsumme Algorithmus?
Lassen Sie uns davon ausgehen, dass ich einige Pakete mit einem 16-bit-Prüfsumme am Ende. Ich möchte zu erraten, die Prüfsummen-Algorithmus verwendet wird.
Für einen start, von dem dump-Daten kann ich sehen, dass ein byte änderung in der Paket-Nutzlast völlig verändert die Prüfsumme, so kann ich davon ausgehen, dass es nicht eine Art von einfaches XOR oder Summe.
Dann habe ich versucht mehrere Variationen der CRC16aber ohne viel Glück.
Dieser Frage vielleicht mehr in Richtung Kryptographie, aber ich bin wirklich daran interessiert, einfach zu verstehen, Statistik-tools, um herauszufinden, welche CRC-dies sein könnte. Ich könnte sogar zeichnen von verschiedenen CRC-algorithmen wenn alles andere fehlschlägt.
Hintergrund Geschichte: ich habe serielle RFID-Protokoll mit einer Art Prüfsumme. Ich kann die Nachrichten wiedergeben, ohne problem, und interpretieren Sie die Ergebnisse (ohne checksum-Prüfung), aber ich kann nicht senden von präparierten Paketen, da Gerät fällt Sie auf den Boden.
Vorhandenen software, die ich ändern kann, Nutzlast RFID-chip. Allerdings, eindeutige Seriennummer, die unveränderlich ist, so dass ich nicht die Möglichkeit haben, zu überprüfen Sie jede mögliche Kombination. Obwohl ich generieren konnte-dumps der Werte Inkrementieren von einem, aber nicht genug, um erschöpfende Suche anwendbar auf dieses problem.
dump-Dateien mit Daten sind verfügbar, wenn die Frage selbst ist nicht genug 🙂
Müssen die Referenz-Dokumentation? EIN PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMEN ist gute Referenz, die ich gefunden habe nach zu Fragen, Frage hier.
Am Ende, nach den sehr hilfreichen Hinweis in Antwort akzeptiert, als es CCITT, ich
verwendet das CRC-Rechnerund xored erzeugten Prüfsumme mit bekannten Prüfsumme zu erhalten 0xffff das führte mich zu dem Schluss, dass final xor ist 0xffff instread der CCITT ist 0x0000.
InformationsquelleAutor der Frage dpavlin | 2008-09-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Reihe von Variablen zu berücksichtigen, für die eine CRC:
Typische CRCs:
Das erste, was zu tun ist, um einige Beispiele von sich verändernden sagen, dass das Letzte byte. Dies wird Ihnen helfen herauszufinden, die Anzahl von bytes in die CRC.
Ist dies ein "hausgemachtes" - Algorithmus. In diesem Fall kann es einige Zeit dauern. Ansonsten versuchen die standard-algorithmen.
Versuchen Sie, das msb oder das lsb des letzten byte, und sehen, wie diese änderungen die CRC. Dies gibt Ihnen einen Hinweis auf die Richtung.
Machen es schwieriger, es gibt Implementierungen zu manipulieren, dass die CRC-so dass es keinen Einfluss auf das Kommunikations-medium (protocol).
Aus deinem Kommentar über RFID, bedeutet es, dass die CRC ist die Kommunikation mit. In der Regel CRC16 wird für die Kommunikation verwendet wird, obwohl CCITT ist auch auf einigen Systemen.
Auf der anderen Seite, wenn dies UHF-RFID-Tags, dann gibt es ein paar CRC-Systeme - ein 5-bit-und 16 bit Variante. Diese sind dokumentiert in den ISO-Normen und der IPX-Datenblätter.
Hier ist deine Antwort!!!!
Gearbeitet, die durch Ihre Protokolle, die CRC CCITT. Das erste byte 0xd6 ist ausgeschlossen aus dem SFB.
InformationsquelleAutor der Antwort selwyn
Würden Sie versuchen müssen, alle möglichen Prüfsummen-Algorithmus und sehen, welche erzeugt das gleiche Ergebnis. Es gibt jedoch keine Garantie dafür, welche Inhalte in der Prüfsumme. Beispielsweise einige algorithmen überspringen der Leerzeichen, die zu unterschiedlichen Ergebnissen führen.
Ich sehe wirklich nicht, warum würde jemand wollen, um zu wissen, dass, obwohl.
InformationsquelleAutor der Antwort Martin Cote
Könnte es nicht sein, ein CRC ist, könnte es ein error correcting code wie Reed-Solomon.
ECC-codes sind oft ein erheblicher Bruchteil der Größe der ursprünglichen Daten, die Sie schützen, je nach Fehler-rate, die Sie behandeln möchten. Wenn die Größe der Nachrichten, die mehr als 16 Byte, 2 Byte ECC wäre nicht genug, um nützlich zu sein. Also, wenn die Nachricht lang ist, sind Sie wahrscheinlich richtig, dass Ihr irgendeine Art von CRC.
InformationsquelleAutor der Antwort DGentry
Ich versuche zu knacken ein ähnliches problem und hier fand ich eine Recht hübsche website, wird Ihre Datei und führen Sie die Prüfsummen mit 47 verschiedenen algorithmen und die Ergebnisse zeigen. Wenn der verwendete Algorithmus zur Berechnung der Prüfsumme ist einer dieser algorithmen, würden Sie finden es einfach unter die Liste der Prüfsummen erzeugt mit einem einfachen text-Suche.
Der website ist https://defuse.ca/checksums.htm
InformationsquelleAutor der Antwort Brian