![]() |
AW: DFM-Dateien verschlüsseln?
Um meine Programme vor unerwünschter Änderung zu schützen, hab' ich mir 'nen AfterCompile-Experten gebaut.
Nach dem Kompilieren errechnet der die MD5-Checksumme der Exe und schreibt diese in die EXE hinein. Meine Programme erstellen beim Start die MD5-Checksumme der Exe und vergleichen diese mit der in die EXE geschriebenen. Gibt es eine Abweichung, beendet sie sich mit 'ner entsprechenden Fehlermeldung. |
AW: DFM-Dateien verschlüsseln?
Ihr habt alle so tolle Lösungen und ich habe Null Ahnung davon -.-'
Ich gehe stark davon aus, dass du nicht preisgibst wie das funktioniert oder? |
AW: DFM-Dateien verschlüsseln?
Es gibt hier irgendwo ein Tutorial, wie man 'nen Experten baut.
Zum Bilden einer MD5-Checksumme gibt es Komponenten und sicherlich hier im Forum und im www diverse Quelltexte. Man muss das nur kombinieren und eine eigene Lösung finden. Wenn alle die gleiche Lösung nutzen, gibt es sicherlich auch schnell jemanden, der diese Lösung umgehen kann. |
AW: DFM-Dateien verschlüsseln?
MD5-Summe bilden und all das ist kein Problem.
Würde aber glaube ich eher meine Lösung verwenden. Nur schaffe ich es gerade nicht die DFM-Resource korrekt auszulesen. Ich bekomme folgendes ausgelesen TPF0TForm5Form5Left (mit ein paar speziellen, komischen Zeichen drin die hier aber gelöscht werden) Code
Delphi-Quellcode:
function LoadTextFromResourceByName(ResourceName: string): string;
var ResourceStream: TResourceStream; sl: TStringList; begin if (FindResource(hInstance, PChar(ResourceName), RT_RCDATA) <> 0) then begin ResourceStream := TResourceStream.Create(hInstance, ResourceName, RT_RCDATA); try sl := TStringList.Create; try sl.LoadFromStream(ResourceStream); Result := sl.Text; finally sl.Free; end; finally ResourceStream.Free; end; end; end; ShowMessage( LoadTextFromResourceByName(Form5.ClassName) ); |
AW: DFM-Dateien verschlüsseln?
Zitat:
Delphi-Quellcode:
// DFM-Resource laden
function LoadTextFromResourceByName(ResourceName: string): string; var ResourceStream: TResourceStream; StringStream: TStringStream; begin if (FindResource(hInstance, PChar(ResourceName), RT_RCDATA) <> 0) then begin ResourceStream := TResourceStream.Create(hInstance, ResourceName, RT_RCDATA); try StringStream := TStringStream.Create; try ObjectBinaryToText(ResourceStream, StringStream); Result := StringStream.DataString; finally StringStream.Free; end; finally ResourceStream.Free; end; end; end; |
AW: DFM-Dateien verschlüsseln?
Zitat:
|
AW: DFM-Dateien verschlüsseln?
Es gab doch mal in MadExcept eine Möglichkeit, die Exe beim Programmstart auf Änderungen zu überprüfen. Gibt's das da noch?
|
AW: DFM-Dateien verschlüsseln?
---
|
AW: DFM-Dateien verschlüsseln?
Zitat:
...und die vielen gelborangeroten Warnhinweise beim Setup und Updaten sind dann auch weg. |
AW: DFM-Dateien verschlüsseln?
Wenn Du den MD5-Wert in die Exe schreibst, musst Du natürlich beim Prüfen alles von der Exe nehmen, mit Ausnahme der MD5-Cbhecksumme.
Also: Exe wird erstellt. MD5 wird berechnet. MD5 hinten an die Exe drangehangen. Exe wird also 16 Byte größer. MD5 prüfen: MD5 zur Exe abzüglich der letzten 16 Byte ermitteln. Übereinstimmung prüfen und entsprechend reagieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 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