![]() |
Sichere Compiler Einstellungen?!
Huhu!
Ich wollte mal Fragen ob es irgendwelche Einstellungen gibt die man ändern kann, um sein Programm änderungs sicher zu machen. Wenn ich meine *.exe mit einem Res Hacker aufmache, kann ich unter "RCData" -> "TFORM1" einfach beliebige Einstellungen ändern. Ich sehe dann folgendes:
Code:
Ich hab mal ein bisschen unter Projekt -> Optionen -> Compiler rumgespielt. Hat aber nicht wirklich was gebracht.
object Form1: TForm1
Left = 353 Top = 181 VertScrollBar.Style = ssFlat VertScrollBar.Visible = False BorderIcons = [biSystemMenu] BorderStyle = bsDialog Caption = 'Test' ...... Ich benutzte übrigens Delphi 7. Gruß, Coke |
Re: Sichere Compiler Einstellungen?!
eine Einstellung kenne ich nicht. Aber wenn dir so viel daran liegt erstelle eine Checksumme für die Ressource und schaue bei Programmstart ob diese noch stimmt.
|
Re: Sichere Compiler Einstellungen?!
Sicheren Schutz gibt es unter Windows nicht!
Mann kann es nur möglichst schwierig machen das etwas geändert wird. z.B. Checksumme anlegen oder Anwendung digital signieren und dann beim Programmstart und während des Programmablaufs durch unterschiedliche Funktionen diesen Schutz checken so das ein Angreifer an vielen Codestellen diesen "Fixen" muß damit die Überprüfung trotzdem erfolgreich ist. |
Re: Sichere Compiler Einstellungen?!
Wie kann ich denn eine Checksumme erstellen und diese dann beim Programmstart prüfen?
|
Re: Sichere Compiler Einstellungen?!
Hallo,
ich weiß nicht, ob das funktioniert, und 100%ig sicher ist ds sicher auch nicht, aber könnte man nicht das Datum des letzten Kompilierens auslesen und mit dem Datum der letzten Dateiänderung vergleichen? Als erster Schutz könnte das doch ausreichen. Zum Auslesen des Kompilierdatums gibt es in der Codelib glaube ich sogar einen Code. |
Re: Sichere Compiler Einstellungen?!
Zitat:
Mit MD5 könntest du das prüfen, hier ein Suchergebnis auf auf torry.net: ![]() Vielleicht (oder sicherlich) gibt es dort auch noch mehr zum Thema "checksum" Gruß Pfoto |
Re: Sichere Compiler Einstellungen?!
Hallo.
Primär kann ich dir den Tipp geben, deine EXE nach jedem Kompilieren zu komprimieren. Dadurch wird sie kleiner und man kann mit Ressourcen- und Hex-Editoren die Werte nicht direkt einsehen. Ist aber kein absolut sicherer, da man die Kompression auch wieder rückgängig machen könnte. Eine MD5-Prüfsumme ist ein guter Ansatz zur Prüfsummenbildung. Aber bedenke, dass die Prüfsumme sich bei jeder Kompilierung ändern kann. Deswegen ist es unmöglich, die aktuelle Prüfsumme in die EXE einzubringen (außer durch direktes Anhängen an die EXE). Folglich bedeutet das, dass du die Prüfsumme in eine separate Datei lagern musst. Damit nieman die Prüfsumme fälscht, sollte sie einen Salt enthalten:
Delphi-Quellcode:
Ist ein schwieriges Thema. Es gibt keine reale Sicherheit bei Digitaltechnik (siehe Bernhard Geyer).
Prüfsumme = MD5(GeheimerWert + MeineEXEDatei)
Gruß blackdrake |
Re: Sichere Compiler Einstellungen?!
Zitat:
|
Re: Sichere Compiler Einstellungen?!
Hallo.
Ich habe nicht gesagt, dass Komprimieren sicher sei. Ich sagte lediglich, dass es das einfachste ist und bereits Disassembler/Hex/Ressource-Editoren abwehrt. Es ist natürlich eine Sache, wie geheim der Programmcode / die Ressourcen sein sollten. Bei Programm mit einem sehr geheimen Code / Ressourcen genügt eine Komprimierung alleine nicht. Die Fragstellung ist eigentlich, ob -TheCoke- a) sein Programm vor Angriffen mit "einfachen" Methoden schützen möchte (-> Komprimierung) b) Ressourcen-Extrahieren (wg. Copyright) verhindern möchte c) Geheime Algorithmen vor Disassemblern schützen möchte d) Programmcode/Ressourcen-Modifizierungen verhindern möchte (es bleibt hier noch zu unterscheiden, ob der Schutz stark oder schwach sein soll) Gruß blackdrake |
Re: Sichere Compiler Einstellungen?!
Huhu!
Hört sich ja schonmal gut an. Gibt es da zum komprimieren ein Tool? Mein Programm benutzt UDP Sockets. Ich möchter in erster Hinsicht verhindern, dass z.b. die IP oder der Port des Remote Hosts geändert werden können. Wenn durch eine Kompriemurung schonmal die Editmöglichkeit mit einem Res Hacker wegfällt wäre das schon was. Gruß, Coke |
Re: Sichere Compiler Einstellungen?!
Wie wäre es dies nicht in der DFM einzutragen sondern per Code zuzuweisen. Am besten noch die Daten verschlüsselt im Programm zu kompilieren. Damit ersparst du dir die Nachteile einer Komprimierung und das ist m.E. etwas schwerer zu knacken.
|
Re: Sichere Compiler Einstellungen?!
Hallo.
Ja, die Editfunktion fällt bei Resourcen/Hex-Editoren weg, aber der Schutz ist nicht sicher. Ein guter Packer ist UPX: ![]() Wie ich sehe, willst du verhindern, dass eine VCL-Eigenschaft geändert oder betrachtet wird. Du kannst den Schutz erhöhen, in dem du die VCL-Eigenschaft z.B. bei OnCreate setzt.
Delphi-Quellcode:
Dies würde jedoch "IP-Adresse" nach dem Dekomprimieren in der EXE im Klartext hinterlassen.
procedure TForm1.OnCreate(...);
begin Socket1.IP := 'IP-Adresse'; end; Du solltest besser eine leichte Verschlüsselung verwenden:
Delphi-Quellcode:
Falsch wäre aber:
procedure TForm1.OnCreate(...);
begin Socket1.IP := Entschluessle('Verschlüsselte IP'); end;
Delphi-Quellcode:
Weil man dann wieder die IP im Klartext in der EXE drinnen hat.
procedure TForm1.OnCreate(...);
begin Socket1.IP := Entschluessle(Verschluessle('IP-Adresse')); end; Wenn ich eine leichte Verschlüsselung ohne Key aus der CodeLib vorschlagen darf: ![]() Gruß blackdrake |
Re: Sichere Compiler Einstellungen?!
Die Verschlüsselung braucht einen Key sowie ich das sehe.
Eine ohne wäre da wohl besser denk ich mal. |
Re: Sichere Compiler Einstellungen?!
Wieso? Einen Key gibt es doch quasi immer. In diesem Fall ist der Key ja nur ein Integer. Such dir eine Zahl aus, die du in dein Programm integrierst.
|
Re: Sichere Compiler Einstellungen?!
Es gibt auch die Möglichkeit, dass soft zu coden. Also statt 'hallo' chr(74)+chr(97)+chr(109)+chr(109)+chr(112). (Hoffe ich hab mich jetzt nicht verrechnet/verzählt xD)
Aber auf Dauer wird die verschlüsselte Variante wohl einfacher sein. |
Re: Sichere Compiler Einstellungen?!
Hallo TheCoke,
Zitat:
![]() Petite ist für nichtkommerzielle Zwecke Freeware. Alexander |
Re: Sichere Compiler Einstellungen?!
Zitat:
Oh ja, mach das mal. Kompilier mal je eine Version mit dem hardkodierten String und mit deiner Variante und vergleich dann mal die Ausgaben :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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