Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#4

Re: DEC: Selftest immer false

  Alt 18. Jun 2004, 14:40
Weil du DEC in Delphi 7 nutzt.
Öffne die Unit DECUtil.pas, gehe zur initialization Sektion, kommentiere dort InitTestIsOk := ... aus und schreibe InitTestIsOk := True rein. Dann klappts auch wieder.

Der .SelfTest eines Algos. im DEC basiert auf ZWEI Tests. Einmal ein globaler Test der in DECUtil.initialization durchgeführt wird und einmal ein Test spezifisch im Algorithmus.

Nun, exakt dieser globale Selbsttest in DECutil ist die Ursache des Problemes. Bzw. genauer gesagt ist die Ursache die Änderung des integrierten Assemblers in Delphi 7. In allen Versionen von D3 bis D6 war der Inline Assembler immer identisch. In D7 wurde der anscheinend ausgetauscht. Da aber in DECutil.initialization eine Prüfsumme über den Code der CRC Checksum Routine gemacht wird, und diese eben vom Assembler abhängig ist, wird in D7 die Variable InitTestIsOk auf FALSE stehen. Somit müssen ALLE .SelfTest's fehlschlagen.

Mit InitTestIsOk := True; wird also dieser globale Selbsttest deaktiviert.

Hintergrund WAR der Gedanke das ein Selbsttest nur dann Sinn macht wenn man auch die Funktionen und Daten die für diesen Test notwendig sind, einer Prüfung unterzieht. Ein Angreifer könnte ja auch neben dem Patchen der Algorithmen zu seinem Gunsten die Sebsttests manipulieren.

Gruß Hagen
  Mit Zitat antworten Zitat