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/)
-   -   'Wirklich' nicht sichtbare Verzeichnisse (https://www.delphipraxis.net/204125-wirklich-nicht-sichtbare-verzeichnisse.html)

creehawk 26. Apr 2020 08:29

'Wirklich' nicht sichtbare Verzeichnisse
 
Moin Moin.

Es gibt viele PC Spiele die beim installieren enorme gepackte/verschlüsselte Datenmengen auf den PC platzieren, die bei Spielstart entpackt/entschlüsselt werden. Entpackt/entschlüsselt man die Spieldateien zu Fuß und sieht sich die Dateien an (XML) finden sich ganz normale Pfadangaben zum beispielsweise Grafikdateien. Was für mich dann heißt: es werden ganz normale Verzeichnisse angelegt und verwendet. Also sollten Sie wenn das Spiel läuft ja wohl zu finden sein. Sind sie aber nicht.

Wie kann ich derartiges mit Delphi erzeugen, also Verzeichnisstrukturen die NICHT im Explorer zu finden sind aber die mein Programm verwendet wie normale Verzeichnisse?

creehawk

P.S. Falls das schon irgendwo abgehandelt wurde: ich habe keine Ahnung wonach ich da suchen soll.....

jfheins 26. Apr 2020 09:07

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Da gibt es natürlich mehrere Möglichkeiten. Was mir gerade so einfällt:

- Ganz normale Dateien benutzen und dann dafür sorgen, dass sie versteckt werden. Einerseits schwierig, andererseits arbeiten manche Anti-Cheats schon sehr low level sodass das möglich wäre.
- Dateien verwenden, die ohnehin nicht angezeigt werden. Ich denke hier an alternate data streams oder das Flag "Systemdatei"
- Dateien nicht direkt verwenden. Man kann ja auch nur eine Datei auf der SSD ablegen, in der dann die ganzen Dateien gespeichert werden. Sei es als tar, zip, vhd oder ein eigenes Format.

creehawk 26. Apr 2020 09:42

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Moin Moin.

So ganz werde ich aus deiner Info nicht schlau.

Also das Systemdatei/Hidden Flag ist gar keine Option, kann ja jederzeit umgangen werden. 'Dateien nicht direkt verwenden?' Verstehe ich gar nicht.

Ich möchte für den normalen Anwender Verzeichnisse definitv nicht sichtbar machen. Dabei aber so verwenden wie normale Verzeichnisse.

creehawk

jfheins 26. Apr 2020 11:03

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die dritte Option ist ein virtuelles(?) Dateisystem. Also du erzeugzt aus deinen Dateien eine zip-Datei und schreibt in deiner Anwendung Code, der diese öffnet und alle folgenden Anfragen für Dateien aus der zip-Datei bedient, wenn verfügbar. (zip lässt sich natürlich ersetzen durch was anderes wie z.B. VHD)

Mit "Dabei aber so verwenden wie normale Verzeichnisse." geht das natürlich nicht zusammen. das Dateisystem unterscheidet normalerweise einfach nicht zwischen deinem Programm und dem Explorer.

Du hast da übrigens einen deutlichen Widerspruch:
Zitat:

Also das Systemdatei/Hidden Flag ist gar keine Option, kann ja jederzeit umgangen werden.
Andererseits:
Zitat:

Ich möchte für den normalen Anwender Verzeichnisse definitv nicht sichtbar machen.
Der normale Anwender wird die Dateien mit System flag nicht finden. Und vor Experten wirst du sie nicht verstecken können.

Bleibt die Zwischenlösung: ADS. Kann dein Programm ganz normal verwenden, sieht man aber nicht im Explorer.
Siehe Anhang - man beachte den Doppelpunkt im Dateinamen.

Bernhard Geyer 26. Apr 2020 11:04

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Eldos hatte mal so ein "Virtuelles File System".
https://www.greymatter.com/EldoS-Cor...SoIFS)/1038394
Da aber Eldos über die Jahre verkauft wurde müsstest du jetzt auf die suche gehen wo aktuell dies Implementierung zu finden ist.

jaenicke 26. Apr 2020 11:23

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Was dabei tatsächlich abläuft kann man mit Tools wie dem Process Monitor sehen. Einfach den Process Name im Filter auf den Namen der Exe des Spiels setzen und dann sieht man worauf das alles zugreift.

Der schöne Günther 26. Apr 2020 12:01

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Zitat:

Zitat von creehawk (Beitrag 1462891)
finden sich ganz normale Pfadangaben zum beispielsweise Grafikdateien. Was für mich dann heißt: es werden ganz normale Verzeichnisse angelegt und verwendet.

Das ist aber eine mutige Schlussfolgerung.

Redeemer 26. Apr 2020 13:49

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Ich würde vermuten, dass es einen Grund gibt, warum Steam es von 10 Jahren abgeschafft hat, Dateien in einem solchen Archivformat zu speichern. Man sollte sich auch fragen, ob es man es selbst braucht.

Ich habe ein Programm, das bestimmte Grafiken cachet, die der Anwender sieht. Die sind sehr klein, recht viele und haben Namen aus Base64, sodass man sie unter Windows nicht speichern kann. Als Dateiformat habe ich mich damals für 16-Bit RES entschieden. Es hat allerdings kein zentrales Inhaltsverzeichnis und muss daher komplett in den Speicher geladen oder zumindest einmal durchlaufen werden. Für so kleine Dateien geht das. Am einfachsten wäre eigentlich ZIP.

Benmik 26. Apr 2020 14:40

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Ich verwende seit einiger Zeit My Lockbox. Die scheinen das zu machen, was du suchst.

Die Laufwerksbelegung wird im Explorer richtig angezeigt (man sieht also eine Diskrepanz zu den sichtbaren Verzeichnissen) und ein Programm wie Everything, das auf die MFT zugreift, findet auch die Dateien. Will man aber solch eine Datei aus Everything heraus öffnen, wird der Pfad nicht gefunden.

Dalai 26. Apr 2020 16:21

AW: 'Wirklich' nicht sichtbare Verzeichnisse
 
Zitat:

Zitat von creehawk (Beitrag 1462891)
Also sollten Sie wenn das Spiel läuft ja wohl zu finden sein. Sind sie aber nicht.

Meiner Meinung nach liegst du mit dieser Schlussfolgerung falsch. Denn warum sollte man Dateien nochmal auf einen extra langsamen Datenträger (egal ob HDD oder SSD) packen, nur um sie von dort gleich wieder zu lesen? Klingt umständlich, und ist es IMO auch. Spiele entpacken ihre Daten in aller Regel in den RAM, weshalb sie oft recht hohe Anforderungen an selbigen haben. Vermutlich läuft das per Streams oder sowas in der Richtung.

Grüße
Dalai


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 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