![]() |
DEC: Selftest immer false
Hi,
Delphi-Quellcode:
mit dieser Procedure überpüfe ich den Seltest vom MD5. Aber es kommt immer Fehler beim initalisieren. Demnach ist der Selftest immer false. Das hab ich schon auf 3 PC probiert, auf allen das gleiche.
with THash_MD5.Create(nil) do
begin if SelfTest then lbSelfTest.Caption := 'Message Digest 5: OK' else lbSelfTest.Caption := 'Message Digest 5: Fehler beim initalisieren'; end; Warum ist der Selftest immer false? Mach ich was falsch? |
Re: DEC: Selftest immer false
Hi,
eventuell ist deine Installation vom DEC defekt oder sie enthält einen Implementierungsfehler (alte Version?) mfG mirage228 |
Re: DEC: Selftest immer false
Eigentlich sollte es die neuste Version sein, aber ich schau nochmal bei Torry. (Hat ja immer die neuste oder??)
|
Re: DEC: Selftest immer false
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 |
Re: DEC: Selftest immer false
Solltest du NICHT Delphi 7 benutzen, dann gibt es nur eine Erklärung dafür das InitTestIsOk == FALSE ist. Denn dann heist dies das die CRC Routine sammt Lookup Tabelle geändert wurde, sie wurde manipuliert.
Dafür gäbe es EINEN ganz gewichtigen Grund !! nämlich in dieser Lookuptable steht "kodiert" mein Copyright drinnen. Jede binäre Distributation die das DEC benutzt enthält in ihrem HEX den String "Portion Copyright by Hagen Reddmann". Dadurch kann ich relativ leicht überprüfen ob eine Anwendung mein DEC benutzt hat. Damit aber für den Programmierer dies nicht zu offensichtlich im Quelltext erscheint habe ich diese in die Lokup Tabelle kodiert ;) Gruß Hagen PS: sollte der Fehler erst zur Laufzeit deiner Anwendung auftreten, eben nicht mit D7 compiliert, dann empfehle ich dir deine EXE nicht zu patchen. Wird nämlich die EXE nach der Compiltation so gepatcht das MEIN Copyright raus ist, wird der Selbsttest fehlschlagen ;) |
Re: DEC: Selftest immer false
Ok, thx. So gehts.
Wird der Selftest jetzt auch korrekt ausgeführt? Oder ist der immer True? Wann könnte er den False sein? |
Re: DEC: Selftest immer false
Ähm, siehe oben :)
Unter D7 wird also der 1. Teil des Selbsttests deaktiviert. Grundsätzlich dient er zwar dazu die CRC Routinen abzusichern, aber praktisch gesehen hält das keinen cleveren Hacker auf. So gesehen dient dieser Selbsttest dazu das ICH Mails bekomme von Programmieren die mein Copyright aus MEINEN Sourcen entfernen möchten. Diese "cleveren" Leute melden sich dann freiwillig bei MIR weil nunmehr die Selbsttest fehlschlagen. Für die eigentlichen Selbsttest der Algos. hat es also nur marginale Sicherheits-Konsequenzen. Der Test dient also dazu mein Copyright abzusichern und als Falle für miese Programmierer :=) Gruß Hagen |
Re: DEC: Selftest immer false
Uhi^^ ganz schön schlau!
|
Re: DEC: Selftest immer false
Nungut nutzt du Delphi 7 ???? ist meine Frage ;)
Gruß Hagen PS: bevor sich nun alle Welt daran macht mein Copyricht im Source zu suchen und weg-zu-rationalisieren, ich habe noch mehr solcher Sicherheitsmerkmale in meine Sourcen integriert. Diese können nicht so ohne weiteres entfernt werden ohne das die Algos. zrstört werden !! |
Re: DEC: Selftest immer false
Ja nutze ich ;)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz