Zitat:
und das Passwort dann noch aus der Exe rausgelesen
Vorsicht das stimmt so nicht. Ich habe zuerst das Password regelgerecht krytoanalysiert ohne irgendwas mit der Software zu machen, ausser das sie mir par Testvektoren zur Verfügung gestellt hat.
Nachdem die Passwortlänge ermittelt war, bekannt war das sich das Passwort immer wiederholt, und erkannt hatte das es ein Streamcipher ist, habe ich das Passwort per Differentielle Analyse ermittelt. Auf den Verdacht hin das simples XOR benutzt wurde. Dazu benutzt man nur 2 Ciphertexte und verküpft sie per XOR. Danach habe ich mit der "Choosen Ciphertext Attack", oben den Wert AAAAAAAAAAAAAAAAAAA.., das Passwort durch die Sofwtare selber anzeigen lassen. Und erst dann fragte ich mich wieviel Knowhow hat der Programmierer in seiner Sofwtare investiert um wenigsten das Passwort vor Entdeckung/Veränderung zu schützen. Also mal schnell den HEX Editor geöffent und nach dem Passwort in der EXE gesucht. Es ist dort nicht geschützt, sofort lesbar, und an mindestens 10 Stellen gespeichert. Also nicht zentral nur einmal.
Das lässt vermuten das der Entwickler den gleichen Algo. für verschiedene Aufgaben benutzt, zb. auch für die Freischaltung der Software. Wollte man per Reverse Engineering das Ding knacken so hiese dies das man quasi den gleichen Algorithmus an 10 verschiedenen Stellen im Code knacken muß.
Wie gesagt ich bin nicht per "Trial&Error" auf die Suche nach dem Passwort gegangen, sondern per Kryptoanalyse.
Allerdings muß man auch eingestehen das das Ding wirklich leicht zu brechen ist. Das mag zwar für einen Laien nicht so sein, aber ein Profi wäre noch einiges schneller gewesen als ich. Das zeigt sich sehr schön hier im Thread. Meine ersten Vermutungen waren mindestens zu 50% falsch, einfach weil nicht genügend Daten vorhanden waren und weil ich selber nicht die logisch richtigen Schlussfolgerungen gezogen habe. Man kann also an Hand dieses Threads sehr gut beobachten wie man Vermutungen aufstellt, wie man überlegt mit welcher Methode man diese Vermutungen überprüfen kann, und die sich daraus ergebenden Schlussfolgerungen logisch so umsetzt das man immer mehr Informationen über das unbekannte System sammelt. Bis eben am Ende das Ding gebrochen ist.
Am Anfang vertrat ich die meinung das es eine Blockverschlüsselung sei, oder das das Passwort 16 Bytes lang wäre, oder das nach X Bytes an Daten immer Y Bytes an Prüfsumme oä. eingefügt sind. Das waren alles fehlerhafte Annahmen.
Nochwas: Ich habe auch schon andere System kryptoanalysiert, logisch irgendwie
Darunter auch "Freischaltung von Delphi" oder einige andere Tools die zb. mit Rainbow Technologies geschützt waren, bzw. sind
Deren Qaulität ist nicht viel besser, wenn auch komplexere Algorithmen benutzt werden. Also auch wenn ich die "Arbeit" des Programmierers kritisiere, so muß man das relativ betrachten und sagt nichts über die Fertigkeiten dieses Programmierers aus. Höchstens über dessen Priorisierung was er für wichtig erachtet.
Gruß Hagen