@Uncle Cracker
Zitat:
Dein Programm gibt bei dem Namen 'Test' eine Zugriffsverletzung aus und beendet sich aber bei dem Namen 'Test1'.
Bei allen anderen Worten funzt alles.
Kann es sein, dass dies ein Bug ist, oder hat das was mit dem Algo zutun? Das denke ich aber nicht.
Nein es ist kein "Bug", sondern ein Ärgernis für euch. Die sache ist ziemlich simpel erklärt. Ich habe einen Maschinen-Code verschlüsselt. Deiser wird per Serial entschlüsselt. Nur wenn die richtige Serial eingegeben wurde wird der korrekte und lauffähige Code entschlüsselt. Gibt man eine falsche serial ein dann ist dieser Maschinencode auch falsch und sollte eigentlich NICHT ausgeführt werden. Aber auf diese Überprüfung habe ich verzichtet und rufe den entschlüsselten Code immer auf. Dies führt zu Zugriffverletzungen. Um Abstütze zu reduzieren habe ich diesen Aufruf in einen try except Block gekapselt. Allerdings keinen Delphi generierten try except Block sondern einen per Assembler erzeugen Structured
Exception Handling = SEH Frame. Dieser IST wesentlich stabiler als der Delphi SEH Frame. Trotzdem kann man Code ausführen der selbst diesen SEH wirkungslos macht ! In diesem Moment wird im besten Falle nur die EXE terminiert. So gesehen eine kleine Gemeinheit meinerseits
Eine sichere Überprüfung ob nun der richtige Code entschlüsselt wird ist aber sehr einfach und denoch sicher einbaubar. Falls du also weiter experimentieren willst dann kann ich das noch einbauen.
Diese Überprüfung funktioniert so daß man sie nicht als Angriffsmethode gebrauchen kann. D.h. selbst wenn ich diese Überprüfung einbaue musst du denoch knacken. Somit lässt sich diese Überprüfung auch zur Verifikation von mehreren Serials benutzen.
Gruß Hagen