Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DFM-Dateien verschlüsseln? (https://www.delphipraxis.net/192554-dfm-dateien-verschluesseln.html)

a.def 30. Apr 2017 18:42

DFM-Dateien verschlüsseln?
 
Es nervt mich ein bisschen, dass man mit einem Resourcen-Programm die nackten DFM-Dateien eines Delphi-Programms sehen kann.
Ist es irgendwie möglich diese Dateien zu verschlüsseln oder zu verfremden?

Lemmy 30. Apr 2017 18:45

AW: DFM-Dateien verschlüsseln?
 
hm... was genau kann man aus der dfm auslesen, was man nicht auch in dem Form anschauen kann wenn man die Anwendung gestartet hat?

a.def 30. Apr 2017 18:46

AW: DFM-Dateien verschlüsseln?
 
Das Problem ist eigentlich weniger das Auslesen. Eher ist es u.a., dass man alles verändern kann.
Es soll Leute geben die verändern das Formular und Copyright und verticken das Programm anderweitig unter neuem Name/Logo weiter.

ralfstocker 30. Apr 2017 18:53

AW: DFM-Dateien verschlüsseln?
 
Ich habe ein Programm, das verschlüsselt alle Resourcen in der EXE. Beim EXE-Start entschlüsselt die EXE ihre eigenen Resourcen wieder. Ist leider Firmen-Copyright. Keine PAS. Kann aber leicht nachprogrogammiert werden.

himitsu 30. Apr 2017 18:58

AW: DFM-Dateien verschlüsseln?
 
Es sind nicht die nackten DFM drin.
DFMs gibt es als Text (so wird die im Delphi angezeigt und aktuell auch in der Datei gespeichert, aber in der EXE wird die binäre Version gespeichert -> TReader/TWriter)
Delphi-Ressource-Editoren übersetzen das natürlich.

Man kann die DFM auch selber speichern und über einen TReader manuell die DFM laden, nachdem man sie vorher z.B. entschlüsselt hat und sie vorher verschlüsselt als RC_DATA in die EXE aufgenommen hat.

Aber das ist auch egal, denn ich kann zur Laufzeit das sichtbare Formular auslesen und mit daraus eine neue DFM generieren. bzw. die gewünschten Werte aus der Form auslesen, wenn ich da ran kommen will.

a.def 30. Apr 2017 18:59

AW: DFM-Dateien verschlüsseln?
 
Ich könnte mir gut vorstellen, dass solch eine Exe bei vielen Virenprogrammen anschlägt.

Lemmy 30. Apr 2017 19:01

AW: DFM-Dateien verschlüsseln?
 
Zitat:

Zitat von a.def (Beitrag 1369521)
Das Problem ist eigentlich weniger das Auslesen. Eher ist es u.a., dass man alles verändern kann.
Es soll Leute geben die verändern das Formular und Copyright und verticken das Programm anderweitig unter neuem Name/Logo weiter.

dann schreib diese Informationen halt nicht in das dfm, sondern setze die Information zur Laufzeit. Das ganze auch nicht im Klartext im Pas sondern verschlüsselt. Dazu noch die exe digital signieren und während der Laufzeit des Programms mehrfach unregelmäßig prüfen ob die exe noch das korrekte Zertifikat hat und ob das noch gültig ist.

a.def 30. Apr 2017 19:06

AW: DFM-Dateien verschlüsseln?
 
Es ist nicht selbstverständlich, dass man Summe XYZ für ein Zertifikat ausgibt. Viele, auch ich, haben für solche Späte kein Geld.
Außerdem sind viele, ich ebenfalls eingeschlossen, keine Delphi-Profis und haben von Verschlüsselung Null Ahnung ;)

himitsu 30. Apr 2017 19:13

AW: DFM-Dateien verschlüsseln?
 
Du kannst von den DFMs einen HASH generieren (AfterBuild), diesen nach dem Compileren in der EXE/Ressources speichern und bei Programmstart entsprechend reagieren, wenn jemand die DFM manipuliert.
Alternativ erstellst du den Copyright-Hinweis eben erst zur Laufzeit.

Die Zertifikate machen das auch nicht viel anders. (außer dass man zusätzlich das Zertifikat noch online verifizieren kann)

a.def 30. Apr 2017 20:37

AW: DFM-Dateien verschlüsseln?
 
Zitat:

Du kannst von den DFMs einen HASH generieren (AfterBuild), diesen nach dem Compileren in der EXE/Ressources speichern und bei Programmstart entsprechend reagieren, wenn jemand die DFM manipuliert.
Interessant. Kannst du mir Quellen nennen wo ich mehr darüber lernen kann?

Zitat:

Alternativ erstellst du den Copyright-Hinweis eben erst zur Laufzeit.
Was genau meinst du damit? Mein Copyright-Text, Programmtitel usw. wird eh zur Laufzeit erstellt.

Edit
ein kleiner Test lädt zwar meine DFM-Resource aber ich bekomme nur 2 Zeilen ausgegeben und die noch mit falschen Zeichen:
Delphi-Quellcode:
// DFM-Resource laden
 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('TForm1') );


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz