Huuh, Hallo erstmal alle zusammen. Ich habe eine Aufgabe bekommen, bestimmte Nummern auf einige Kontaktchipkarten (SLE4428) zu kodieren. Nur dummerweise hat der Kunde nur sehr wenig Dokumentation gebracht. Darin steht, dass es eine CRC8/146 über eine Seriennummer errechnet werden muss und auf die Karte kodiert. Was dieses 146 nun bedeutet weiss niemand von uns, der Kunde auch nicht :( (Es wurde von langer Zeit so definiert. Jetzt muss es auch drauf wegen den alten Karten und Leser, welche der Kunde hat) Jetzt ist die Frage, wie dieser CRC8/146 Algorithmus aussehen muss. Ich habe mit der standard CRC8 Funktion alle Polynome und Startwerte durchlaufen lassen und manchmal Treffer gehabt. Es ist aber nicht sicher! Kann hier jemand helfen herauszufinden wie der CRC8/146 gerechnet werden muss, damit richtige Zahlen rauskommen? Beispieldaten(der letzte Byte ist der CRC): 30303030303335323536315F und 3030303030333532353634E8 und 3030303030333438313537E7 und 30303030303334383135369D und 3030303030333337303133AA und 303030303032393531393440 p.s.(bei der ersten zwei, wenn ich die die Reihenfolge der Bytes umdrehe, dann bekomme ich die richtige CRC's mit einem Polynom = 0x4D und Startwert = 0x12. Wenn ich aber dieselben Werte bei weiteren Daten anwende, bekomme ich nicht das richtige Ergebnis. dumm...)
Aus dem Bauch raus und ohne deine Beispiele zu prüfen, würde ich sagen das 146 das Generatorpolynom angibt. 146 = 10010010 -> x^7 + x^4 + x^1
Kann es sein dass mit 146 das CRC-Polynom gemeint ist? Vielleicht x^6 + x^4 + x?
dachte ich auch, aber das ist es nicht... Ich habe mithilfe von zwei ineinander gesetzten Schleifen alle Polynome von 0x00 bis 0xFF und jeweils alle Startwerte durchprobiert. Kein einziger Treffer wo alle Beispieldaten gleichzeitig den richtigen CRC haben! Hammer, oder?? Das heisst doch, dass es irgendwie anders berechnet wird, oder nicht? p.s. (Ich habe jetzt etwas über das "CRC and how to Reverse it" gefunden. Nur leider fehlt mir das Grundwissen um es richtig zu verstehen. Es gibt anscheinend eine Software namens PEiD. Kennt sich damit jemand vielleicht aus? Vielleicht kann man damit das Algorithmus herausfinden oder so...)
Reticent wrote: > dachte ich auch, aber das ist es nicht... Ich habe mithilfe von zwei > ineinander gesetzten Schleifen alle Polynome von 0x00 bis 0xFF und > jeweils alle Startwerte durchprobiert. Kein einziger Treffer wo alle > Beispieldaten gleichzeitig den richtigen CRC haben! Hammer, oder?? Das > heisst doch, dass es irgendwie anders berechnet wird, oder nicht? Wird die CRC vielleicht mit einem Startwert berechnet? Probier die 256 verschiedenen Startwerte doch auch mal mit aus, dauert ja nicht lang ;-)
> .. Ich habe mithilfe von zwei > ineinander gesetzten Schleifen alle Polynome von 0x00 bis 0xFF und > jeweils alle Startwerte durchprobiert. ähm... habe doch geschrieben, dass ich alle Startwerte ausprobiert habe?!
Some CRC implementations xor the final value with some other value. crc = crc ^ xor_Value xor_Value = 146 ? Maybe?
> Some CRC implementations xor the final value with some other value. > crc = crc ^ xor_Value > > xor_Value = 146 ? > > Maybe? maybe, I will try it :) (I was able to try "/146" as a division -> negative, now I'll try the XOR) thx for the idea
nop, still negative :)) I mean, I tried it and no consensus found. No hits where all of example data are have the right CRC... :( ---- nein, habe das mit dem XOR hinterher ausprobiert und keine {bereinstimmungen gefunden. Kein einyiger Fall wo alle Beispieldaten den richtigen CRC ausgerechten bekommen :(
habe jetzt eine tolle Seite entdeckt http://serversniff.net/crypt-checksum.php da gibts viele super Tools und man kann alles auf ein Schlag ausrechnen lassen. Das habe ich auch mit meinen Beispieldaten gemacht. Leider keine Treffer :( Dann habe ich auch etwas von einer Methode gelesen wie man den Algorithmus herausfinden kann. Man soll irgendwie ein lineares Gleichungssystem bilden.... Weiss nicht ob das so stimmt... Kennt das jemand? Oh mann... ich bin scho am verzweifeln. Was soll bloß tun? Wie kann man denn sonst herausfinden wie der blö.. CRC8/146 zustande kommt? Es kommt mir vor als ob ich eine verschlüsselte Geheimnachricht entschlüseln soll :D Ich bin da gar nicht stark... So'n Mist ...
Ohaa, drehe ich langsam durch? :) Fange an schon bei der chaostheorie reinzuschauen http://www.chaostheorie.de/read.php?1,1890
so wie ich das sehe ist die SLE4428 sektionsweise beschreibbar. wenn du die erste sektion nimmst: 30303030303335323536315F Das Checksummen Byte weg lässt: 30303030303335323536315 CRC8 Bildest und dieses Resultat XOR mit 146 rechnest bekommst du F somit das Checksummen Byte! versuch das gleich noch mit der nächsten Sektion. Funktioniert anscheinend nicht so! Aber überprüf doch mal ob pro (Bereich) eine CS gebildet wird. Wenn ich das recht in Erinnerung habe das die SLE4428 in Bereiche aufgeteilt ist. Zudem hat die glaube ich noch einen Schreib/lese Schutz...
Mit was liest du denn die Karte aus? Sicher das die gelesenen Daten stimmen? (Lese Schutz der Karte) wenn Pin nicht korrekt eingegeben wurde kommt nichts sinnvolles zurück. Zudem, gewisse Kontaktchipkarten Drehen die Bitreihenfolge. Hast du das Datenblatt zur "alten" Chipkarte. Und bist du dir sicher dass die gelesenen Daten stimmen?
@Fabio S. die 5 am Ende gehört aber schon dem CRC. Somit ist der CRC = 5F und nicht nur 5 seien soll. Das mit dem XOR 146 habe ich auch probiert. Es klappt nicht bei allen Daten. @student Ic hlese die Karten mit SmartCardEditor V1.03. Leseschutz...hm.. Wird man überhaupt die Karte lesen können wenn der PIN nicht stimmt? Kommt da nicht gleich eine Fehlermeldung? Von der alten Karte habe ich nur die Info das es ein CRC8/146 seien soll. Mehr nicht. An die Bitreihenfolge habe ich auch gedacht. Daher in verschiedensten Variazionen probiert. von rechts nach links und umgekehrt. Ich gehe davon aus, dass die gelesene Daten richtig sind. Aber wo du über den PIN sprichst und ich gerade sehe, dass es auf 0000 steht.... Ich prüfe das nochmal. Die Internetseite mit dem Calculator kenne ich auch. Das war die erste Wahl bei mir. Aber dort bekomme ich auch nicht das was ich brauche :( Vlt habe ich nur krumme Arme...
Reticent wrote: > Huuh, Hallo erstmal alle zusammen. > > Ich habe eine Aufgabe bekommen, bestimmte Nummern auf einige > Kontaktchipkarten (SLE4428) zu kodieren. Nur dummerweise hat der Kunde > nur sehr wenig Dokumentation gebracht. Darin steht, dass es eine > CRC8/146 über eine Seriennummer errechnet werden muss und auf die Karte > kodiert. Was dieses 146 nun bedeutet weiss niemand von uns Ich rate mal dass es das Generatorpolynom ist.
@student @Fabio S. es ist kein Leseschutz vorhanden. Von dem her sind alle gelesenen Daten richtig. @Michael G. ne ist es nicht. (Das wurde aber auch schon vorgeschlagen.)
>> Kontaktchipkarten (SLE4428) zu kodieren. Nur dummerweise hat der Kunde
Im Datenblatt zum SLE4428 steht nichts von einem CRC8!?
-Hans
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.