AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein 'Wirklich' nicht sichtbare Verzeichnisse
Thema durchsuchen
Ansicht
Themen-Optionen

'Wirklich' nicht sichtbare Verzeichnisse

Ein Thema von creehawk · begonnen am 26. Apr 2020 · letzter Beitrag vom 3. Mai 2020
Antwort Antwort
Alallart

Registriert seit: 8. Dez 2015
165 Beiträge
 
#1

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 30. Apr 2020, 12:34
Da fällt mir gerade noch eine Methode ein, die sehr simpel umzusetzen ist, und die garantiert den Ordnerinhalt versteckt. Das Schlüsselwort ist: Benutzerrechte.

Dazu benötigt man mehrere Benutzerkonten, vorzugsweise ein Administratorkonto und ein normales Benutzerkonto, sowie ein NTFS-Dateisystem. Nehmen wir an wir haben die Benutzerkonten Administrator und Klaus. Wobei das Administratorkonto benötigt man eher nur für den Fall der Fälle, denn auch ein normaler Nutzer kann sich bestimmte Rechte einschränken und wieder geben. Sollte das mit dem wiedergeben nicht klappen, benötigt man dann die Administratorrechte. Oder man will einem anderen Konto die Rechte nehmen, und der soll sich die nicht selbst wiedergeben können. Aber will man sich selbst paar Rechte nehmen, klappt das auch alleine.

Wir sind als Benutzer Klaus angemeldet. Gehen wir jetzt davon aus, dass der Ordner "Test" vorhanden ist und Daten enthält. Jetzt gehen wir in den Daten-Explorer und rufen die Eigenschaften von dem Ordner "Test" auf. Anschließend das Register "Sicherheit" und dann den Button "Bearbeiten" anklickenden. Den Benutzer "Klaus" auswählen. Jetzt noch "Ordnerinhalt anzeigen" und "Lesen" verweigern und OK klicken. Ab jetzt kann man nicht mehr den Inhalt sehen oder lesen.

Da man sich selbst die Rechte genommen hat, kann man sich die selbst wieder geben.

Nur so nebenbei - das ist eine einfache Methode einen Schädling still zu legen, den man lokalisiert hat, ihn aber nicht vom System entfernen kann. Einfach "Lesen" und "Ausführen" Rechte nehmen. Nach dem Neustart kann er nicht mehr ausgeführt werden und kann gelöscht werden.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#2

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 30. Apr 2020, 12:50
Es versteht sich doch von selbst, daß man einen Windows-Rechner, eigentlich egal welchen Rechner, nicht als root/Admin/Superuser ausführt....oder nicht? Damit sind dann ohnehin die allermeisten Probleme nicht mehr erwähnenswer.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.400 Beiträge
 
Delphi 12 Athens
 
#3

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 30. Apr 2020, 12:51
Man kann sich zur Laufzeit weitere Rechte aktivieren (wenn man das Recht dazu besitzt, oder die Logindaten eines Benutzers hat, der das darf)

und ein ordentliches Setup startet den Prozess nicht mit seinen eigenen vererbten Rechten und dem zum Starten verwendeten Benutzer (z.B. Administrator),
sondern es besorgt sich die Berechtigunen des eingeloggten Benutzers und startet damit das Programm in dessen Umgebung.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#4

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 30. Apr 2020, 13:14
Also ohne Treiber, der basierend auf einem bspw. irgendwie registrierten Prozeß die Daten "unsichtbar" macht, kommen mir da nur Frickellösungen in den Sinn.

Beispielsweise könnte man die üblichen Beschränkungen für Pfadnamen im Win32-Subsystem umgehen, indem man die nativen Pfade benutzt. Oder man könnte Alternative Data Streams auf NTFS einsetzen. Aber das wäre dann halt NTFS-spezifisch. Allerdings kann man so auch Daten an einen Verzeichnisnamen tackern, ohne daß die als Datei im Verzeichnis erscheinen.

Beschränkungen die mir in den Sinn kämen wäre bspw. der Punkt am Ende eines Namens (egal ob Verzeichnis oder Datei). Allerdings zeigt Windows 10 das in aktuellen Ausgaben schon wieder ohne Probleme an (Explorer und Kommandozeile).

Beispiel:
  1. Kommandozeile: echo foobar > \??\%USERPROFILE%\Desktop\Fass_mich_nicht_an.txt.
  2. Danach per Notepad oder so die Datei öffnen. Die meisten Programme werden sich beschweren, daß die Datei nicht existiert, oder diese stillschweigend erstellen. Versuche ich bspw. die Datei danach wieder per Notepad zu öffnen kommt "The filename, directory name, or volume label syntax is incorrect." und Notepad++ bietet mir an sie zu erstellen, weil sie angeblich nicht existiert.

Wir sind als Benutzer Klaus angemeldet. Gehen wir jetzt davon aus, dass der Ordner "Test" vorhanden ist und Daten enthält. Jetzt gehen wir in den Daten-Explorer und rufen die Eigenschaften von dem Ordner "Test" auf. Anschließend das Register "Sicherheit" und dann den Button "Bearbeiten" anklickenden. Den Benutzer "Klaus" auswählen. Jetzt noch "Ordnerinhalt anzeigen" und "Lesen" verweigern und OK klicken. Ab jetzt kann man nicht mehr den Inhalt sehen oder lesen.

Da man sich selbst die Rechte genommen hat, kann man sich die selbst wieder geben.
Holla die Waldfee, hier sind aber schon ein paar Stolperfallen versteckt.

Es ist semantisch ein kompletter Unterschied, ob man den ACE (Zugriffssteuerungseintrag, ACL = Zugriffsteuerungsliste) auf Zugriff soundso ist abwesend und Zugriff soundso ist explizit verweigert (Deny ACE), setzt. Da Deny-ACEs immer Vorrang genießen wird an der Stelle mit der Zugriffsüberprüfung abgeschlossen wo es einen Treffer gibt. Es gibt also ganz klar einen riesigen Unterschied ob ich explizit den Zugriff verweigere, oder ob ich ihn nicht gebe.

Außerdem kommt es darauf an wer der Eigentümer ist. Sofern man selbst Eigentümer ist, trifft das was du schreibst allgemein zu. Ansonsten wird's problematisch, weil man sich durchaus Rechte entziehen, bzw. verweigern kann und danach nicht mehr an das Objekt rankommt ohne Holzhammermethode.

Einfach mal mit icacls selber austesten ... geht schneller als Klickibunti im Eigenschaftendialog.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (30. Apr 2020 um 13:49 Uhr) Grund: Schlechtschreibung korrigiert
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
243 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 1. Mai 2020, 14:41
Moin Moin.

So. Ich habe das jetzt soweit hingefrimmelt das ich aus einer Res in ein XML Dokument laden kann. Das entspricht jetzt nicht meiner Grundidee aber dem Ziel.

Und es würde mich doch sehr interessieren was da in diesen Spielen abläuft. Ein paar findige Leute haben Programme geschrieben die die Spieldateien auslesen können und dann in ganz normale Windowsverzeichnise ausgeben. Dann kann man wie gesagt in den ausgepackten XML Dateien etliche Verweise auf ganz normal definierte Verzeichnisse finden. Und die müssen ja nun irgendwo sein. Sind sie aber nicht wie ich schon besagt habe. Ich wiederhole mich.....

Aber bitte, dann stream ich jetzt eben.

creehawk
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.495 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 1. Mai 2020, 15:38
Nochmals: wie kommst Du darauf diese die Dateien "in ganz normale Windowsverzeichnise ausgeben"? Nur weil da Strings in XML-Daten drin sind, die wie Dateinamen aussehen, heisst das noch lange dass es dann auch Dateien auf deinem System sind.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#7

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 1. Mai 2020, 16:04
Dann kann man wie gesagt in den ausgepackten XML Dateien etliche Verweise auf ganz normal definierte Verzeichnisse finden. Und die müssen ja nun irgendwo sein. Sind sie aber nicht wie ich schon besagt habe.
Das würde ich jetzt mal nicht so unterschreiben.

Nehmen wir einen Webserver.
Der liefert diverse Dateien.
Die enthalten diverse Links auf weitere Dateien.
Diese Verweise sehen aus wie Verzeichnisse, mehr oder weniger lange Pfade, konkrete Dateien ...
Davon muss aber nix tatsächlich in der Form, wie es den Anschein hat, existieren.
Der Webserver ist "nur" in der Lage, diese Dateien zu liefern, wo er sie tatsächlich herkommt, kann man an den Links nicht erkennen.

Bilder müssen nicht irgendwo in 'nem Verzeichnis liegen, das auch nur annähernde Ähnlichkeiten mit der Verzeichnisstruktur aus dem Link hat, sie könne auch aus 'nem Blob einer Datenbank kommen, PDFs müssen nicht zwingend existieren, sie können auch auf Anforderung generiert werden. U. s. w..

Warum sollten andere Softwareentwickler sowas nicht auch machen.
Wird aus 'ner XML via Verzeichnis-/Dateiname auf was anderes verwiesen, so muss das nicht auf der Platte liegen, sondern kann z. B. aus einer anderen Resource geladen werden.

Wenn ich aus 'ner ZIP eine Datei lade und diese enthält Verweise auf andere Dateien, so müssen diese nicht irgendwo auf 'ner Platte liegen, sondern können ebenfalls im ZIP liegen.

EBooks funktionieren doch auch so:

EPub ist z. B. 'ne ZIP mit der Endung EPub.

Dadrinne sind etliche Konfigurationsdateien und eben die "lesbaren" Inhalte und ggfls. die darin verlinkten Bilder.
Schaut man sich nun die Quelltexte der "lesbaren" Inhalte an (was höchstwahrscheinlich einfach nur HTML ist), so sieht man da auch Links auf die verwiesenen weiteren Seiten, Bilder ...
Aber eine entsprechend Verzeichnisstruktur auf der Platte gibt es nicht. Wird ein entsprechender Link geklickt oder ein Bild per IMG-Tag angefordert, so wird das "entzippt" und angezeigt.

Was hier geht, geht garantiert auch bei 'ner Spielekonfiguration.
Vielleicht nicht als ZIP, sondern in 'nem beliebigen anderen Format, aus Resourcen oder was auch immer die Phantasie der Entwickler dort zustande gebracht hat.

Oder flapsig formuliert:

Was optisch den Anschein eines Verzeichnisses erweckt, muss noch lange kein Verzeichnis sein, es muss nichtmal real existieren.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#8

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 3. Mai 2020, 18:21
Dann kann man wie gesagt in den ausgepackten XML Dateien etliche Verweise auf ganz normal definierte Verzeichnisse finden. Und die müssen ja nun irgendwo sein. Sind sie aber nicht wie ich schon besagt habe. Ich wiederhole mich.....
Eben. Du wiederholst dich und ignorierst geflissentlich zuvor gegebenen Rat und Aussagen anderer Diskutanten in diesem Thema.

So ziemlich jeder größere Spieltitel den ich kenne, beinhaltet irgendeine Form von Archiven. Seien es nun die `.pak`-Dateien von Doom/Prey/... (id Software), oder seien es die Dateien in Drakensang oder Witcher, für die man spezielle Werkzeuge braucht um sie zu entpacken. Mancher Titel "entpackt" die dann wirklich in eine Art Zwischenspeicher für schnelleres Laden, aber andere arbeiten direkt mit den Archiven. Die werden quasi gemountet.

Python hat ein Modul in der Standardbibliothek mit der man direkt aus einer ZIP heraus weitere Abhängigkeiten nachladen kann. Ich selbst habe bereits Code in C geschrieben, der ähnliches tut, weil Deflate nunmal extrem praktisch für sowas ist.

Was in aller Welt bringt dich dazu, dich zu der Aussage zu versteigen, daß diese Verzeichnisse sich irgendwo auf dem Dateisystem in entpackter Form wiederfinden müßten?

Und wenn wir schon dabei sind: wenn es dir darum geht herauszufinden wie das bei einem bestimmten Spiel funktioniert, dann müßtest du schon einen bestimmten Titel angeben. Mit etwas Glück fände sich ein spieleinteressierter und extrem erfahrener Rückentwickler (wie mindestens einer hier im Forum unterwegs ist ) und erbarmt sich, oder andere haben schon Modding-Erfahrungen mit dem Titel ohne Rückentwickler zu sein. Die Frage, so wie sie steht, ist extrem breit. Und wenn es dir aber eben nicht allein darum geht die (vermutete!) Funktionalität in deinem Programm umzusetzen, sondern darum wie das irgendwo umgesetzt ist, dann ist dieses gesamte Thema hier aber im falschen Unterforum.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
165 Beiträge
 
#9

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 3. Mai 2020, 19:59
@creehawk

Oder du mountest das Verzeichnis als Laufwerk. Du hast dann Pfade die sonst wo sind, aber weil sie gemountet sind, so tun als ob sie irgendwo anders wären. Das versteckt dein Verzeichnis nicht wirklich, aber wenn du Glück hast, ist derjenige wenigstens zwei Minuten verwirrt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.400 Beiträge
 
Delphi 12 Athens
 
#10

AW: 'Wirklich' nicht sichtbare Verzeichnisse

  Alt 3. Mai 2020, 23:58
Alallart meint es bestimmt andersrum.

Datei bzw. Laufwerk/Partition als Verzeichnis mounten, weil ein Laufwerk/Buchstabe im Windows zu finden wäre zu einfach.
(ZIP als Unterverzeichnis bzw. ISO als Laufwerk)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 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