Checksumme für bytes erraten

Hallo,
ich habe in einer Datei mehrere Folgen von Bytes, die mit einem Prüfbit enden.
Das könnte z.B. so aussehen:
AF 3B A3 5C
Wobei 5C dann das Prüfbit wäre.
In einem Fall ist das Prüfbit nur die XOr Verknüpfung. In einem anderen Fall aber nicht.
Da es sich nur um ein Bit handelt und ich mehrere gültige Reihen habe frage ich mich nun, ob es eine Möglichkeit (vielleicht schon ein fertiges Programm?) gibt, wie man den Algorithmus hinter dem Prüfbit erraten kann, wenn man ein paar "Referenzen" hat.
Ich würde mich über Ideen oder Anzreize freuen! :)
(Die Beispiele kann ich leider nicht posten)
 
Redest du von einem Bit oder einem Byte?

Und wie viele gültige Reihen besitzt du?

Neben der klassischen Variante des Reverse-Engineering oder der Google suche könnte man auch ein paar abgefahrene Versuche mit Machine-Learning machen :rolleyes:. Also irgendeinen Classifier drüber laufen lassen (Nearest-Neighbour, Neuronale Netze) und mal schauen wie das Ergebnis ist. Setzt aber entsprechend viele gültige Reihen voraus. Chancen erfolgreich zu sein sind u.U. nicht hoch, macht aber Spaß und man lernt doch einiges.

Selbst wenn es ein Prüfbyte wäre, sind 256 Optionen nicht sonderlich viele. Kannst du nicht einfach alle durchprobieren und schauen welche akzeptiert werden?

Oder gibt es einen bestimmten Grund warum du den genauen Algorithmus wissen möchtest?
 
Sorry, ich meinte natürlich Byte :)
Damit fällt das Paritätsbit ja leider raus, weil ich hinten nicht nur ein Bit sondern ein Byte hinzufügen muss.
Leider kann ich mir die Bytes auch nicht verifizieren lassen, weil das beim brootforcen zu lange dauern würde.
Mein Problem beim durchprobieren, bis das Byte passt (z.B. mit brootforcen oder irgendwie mit KI) ist, dass ich nicht genau weiß welche Operatoren ich genau vorsehen soll. Ich hatte überlegt alle Bytes mit verschiedenen Operatoren (XOr, Addition, Mod, ...) durchprobieren zu lassen aber da kann ich mir ja nie wirklich sicher sein, dass ich alle dabei hab oder das nicht ganz anders gemacht wird.
Ich hatte bei CRC Checks mal einen one byte Variante gefunden, die alle Bytes Addiert und dann am Ende Modulo 256 macht. Der war es aber nicht.
Jetzt hab ich aber gerade gesehen, dass man ja wohl für einen CRC Check ein beliebiges "8-Bit Polynom" nehmen kann. Hier finde ich das ganz nett gemacht:
Online CRC Calculation
Ich werd jetzt zumindest mal alle solche Polynome durchprobieren lassen, vielleicht klappt das ja schon :)

Danke euch!
 
Zurück
Oben