Page:
HashFS Clean Room Spezifikation
Pages
ADR 0001 Clean Room Entwicklung
ADR 0002 Nativer Kartenrenderer
ADR 0003 Phase 0 Abhängigkeiten
Architektur
Archivzugriff
Benutzerhandbuch
Build und Entwicklung
Changelog
Clean Room Richtlinie
Datenformate
Exportprofile
HashFS Clean Room Spezifikation
Home
Modpaket Metadaten
Projektstatus
Projektübersicht
Quellenregister
Roadmap
SCS Profil Klartextteilmenge
SII Klartextparser
Steam Erkennung
Synthetische Profilfixtures
Verhaltensnotizen
Virtuelle Pfade
Virtuelles Dateisystem
No results
1
HashFS Clean Room Spezifikation
Batista82 edited this page 2026-07-30 18:22:36 +02:00
HashFS-Clean-Room-Spezifikation
Ziel
HashFS-Archive sollen read-only verarbeitet werden, ohne fremden Quellcode oder undokumentierte Implementierungen zu übernehmen.
Aktueller Implementierungsstand
- HashFS wird als eigener Archivtyp erkannt, wenn ein
.scs-Archiv nicht als ZIP geöffnet werden kann. - Die native HashFS-Leselogik ist noch nicht implementiert.
- Die Anwendung liefert dafür eine klare Diagnose mit dem Code
HASHFS_NATIVE_READER_NOT_IMPLEMENTED. - Optional kann später ein vom Benutzer selbst bereitgestellter offizieller SCS-Extractor über einen Adapter angebunden werden.
Clean-Room-Regeln
- Keine Übernahme fremder HashFS-Parser.
- Keine Übersetzung fremder Implementierungen in C#.
- Keine extrahierten SCS-Dateien im Repository.
- Keine Testfixtures aus ETS2, ATS oder Mods.
- Tests verwenden ausschließlich synthetische Binärdaten und künstliche
.scs-Dateien.
Native Leser-Anforderungen
Ein späterer nativer HashFS-Leser muss mindestens folgende Prüfungen durchführen:
- Magic/Signatur prüfen.
- Headerlängen gegen Dateigröße validieren.
- Offsets und Längen gegen Dateigrenzen validieren.
- Eintragsanzahl begrenzen.
- Einzelne Eintragsgröße begrenzen.
- Unkomprimierte Gesamtsumme begrenzen.
- Unbekannte Kompressions- oder Verschlüsselungskennzeichen diagnostizieren.
- Virtuelle Pfade ausschließlich normalisiert bereitstellen.
- Path Traversal und absolute Pfade ablehnen.
- Hashkollisionen und doppelte virtuelle Pfade diagnostizieren.
- Beschädigte Einträge isolieren, ohne den gesamten Export unnötig abzubrechen.
Adapter für offiziellen Extractor
Der Adapter darf nur ein lokal vom Benutzer konfiguriertes Werkzeug starten. Das Werkzeug wird nicht mitgeliefert.
Die Adapterkonfiguration besteht aus:
- Pfad zur ausführbaren Datei.
- Argumentvorlage für Dateiliste.
- Argumentvorlage für Extraktion einer einzelnen Datei.
- Zeitlimit.
Unterstützte Platzhalter:
{archivePath}{virtualPath}{outputPath}
Die Listenausgabe wird zeilenweise gelesen und als virtuelle Pfade normalisiert.
Offene Spezifikationsfragen
- Endgültige Headerstruktur.
- Eintragsindex und Hashalgorithmus.
- Kompressionsarten.
- Integritätsfelder.
- Versionsfelder und Kompatibilitätsgrenzen.
Diese Punkte werden erst nach eigener Forschung und synthetischen Tests als implementiert markiert.