Autor Beitrag
MindGames
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 17.02.18 00:20 
Hallo,
ich hätte eine Frage bezüglich eines meiner Projekte. Ich finde momentan keinen Lösungsansatz und hatte gehofft von Außenstehenden Hilfe zu bekommen.
Die Situation sieht so aus:
Ich habe verschiedene Programme erstellt und haben nun .exe-Dateien und .dll-Dateien welche ich mit dem Launcher (dem eigentlichen Programm) verwenden möchte. Das Problem ist jetzt, dass man problemlos auch einzeln auf die .exe-Dateien zugreifen kann, ich möchte aber, dass das nur über den Launcher geschieht und man gar keinen externen Zugriff auf die Dateien haben kann. Nur weiß ich nicht wie ich das Problem angehen kann.
Man soll quasi die eigentlichen .exe/.dll-Dateien nicht einsehen können. Optimal wäre, wenn diese gar nicht permanent auf dem PC deponiert sind.

Vielen Dank vorab für die Hilfe
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Sa 17.02.18 23:47 
user profile iconMindGames hat folgendes geschrieben Zum zitierten Posting springen:
Man soll quasi die eigentlichen .exe/.dll-Dateien nicht einsehen können.


Das funktioniert nur auf einer Partition mit einem Dateisystem, das Zugriffsbeschränkungen bietet. Installieren, also per Installation einrichten, kann man das aber m.E. nicht.

user profile iconMindGames hat folgendes geschrieben Zum zitierten Posting springen:
Optimal wäre, wenn diese gar nicht permanent auf dem PC deponiert sind.


Auf einem Webspace lassen sich Windows-Executables m.E. nicht starten bzw. deren Code ausführen.

_________________
Ordnung ist das halbe Leben - und sie zu schaffen die andere Hälfte.
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 376
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Fr 02.03.18 01:02 
Hallo Mindgames,

Du könntest z. B. die *.exe und *.dll als versteckte Dateien soeichern. Das würde zumindes naive Anvende aussperren.

Folgende Alternativ ist zwar von Experten ab Hobby-Hacker leicht zu knacken, aber nicht von typischen Anwendern:

a) Jede *.exe oder *.dll enthält folgenden Block:

- Kennungsstring, z. B. 128 Bit = 16 Zeichen
- DatumZeitString, evtl. verschlüsselt
- nach Bedarf, CRC über die gesamte Datei

b) Bei Start der *exe oder *dll: DatumZeitString (ggf. entschlüssen); falls die Datei älter als xx Sekunden ist, dann Abbruch.

c) Für den Launcher alle *.exe und *.dll in eine Binärdatei packen, bei Delphi evtl. auch in eine Resource, z.B. mit Verzeichnis am Anfang

d) Der Launcher holt sich die nötigen Dateien aus der Binärdatei, sucht in jeder Datei nach dem Kennungsstring, trägt die aktuielle Zeit und ggf. CRC ein, speichert die Ergebnisse als *.exe bzw. *.dll, startet das Programm und löscht alle Dateien nach Beendigung. Bei einem Programmabbruch verhindert die DatumsZeit-Überwachung einen Neustart der Datei.


Wenn Du das für einen brauchbaren Weg hältst, melde Dich, ich habe für Delphi einen Code, der sinngemäß arbeitet um bei Start einer *.exe mit einer CRC zu prüfen, ob sie verändert wurde.

Viele Grüße
GuaAck