SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
TIPPS ZUM ENTSCHLÜSSELN VON RCT3 DATEN
von Markus Lomberg, Entwickler von CTRs
Version 01 (08.Dez.2009)

In diesem Dokument gebe ich einige Tipps für User, die beim Entschlüsseln von RCT3
Daten helfen wollen. Die Tipps sind meist in loser Reihenfolge aufgeführt.



Voraussetzungen und Vorbereitungen
•   benötigt wird folgende Software
            o RCT3 (möglichst ohne AddOns, was einfacher zu entschlüsseln ist – siehe
               Abschnitt „Grundsätzliches“)
            o ein einfacher Texteditor (z.B. Notepad/Editor, Wordpad)
            o ein einfacher Hexeditor
            o ein Taschenrechner (z.B. Calculator in Windows) zum Umrechnen von Hex- in
               Dezimalzahlen
            o bis auf RCT3 sind alle Tools gratis und frei herunterladbar
•   ferner benötigt man viel Geduld, einige Zeit zum Rumprobieren und ein schlaues
    Köpfchen fürs Knobeln
•   User, die Programme zum Entschlüsseln und später zum Erstellen von Daten (wie
    Importer und CTR_Creator) schreiben wollen, benötigen natürlich
    Programmierkenntnisse und die entsprechende Programmiersoftware (z.B. C++)
•   beim Entschlüsseln modifiziert man probeweise die originalen RCT3-Dateien, welche
    danach eventuell nicht mehr funktionieren. Deshalb empfiehlt es sich, vorab
    Sicherheitskopien der Daten zu machen.



Grundsätzliches
•   RCT3 verwendet hauptsächlich „Overlay“ Dateien (.ovl), welche immer als
    zusammengehörendes Paar (.common.ovl und .unique.ovl) vorliegen. Gelegentlich
    werden auch „Data“ Dateien (.dat) verwendet, z.B. bei gespeicherten Parks.
•   die Strukturen in RCT3 Dateien ohne AddOns sind einfacher zu entschlüsseln; die
    Strukturen in den AddOns sind komplizierter, beinhalten dafür aber auch interessantere
    Spezialfunktionen im Spiel
•   Ich vergleiche das Entschlüsseln gerne mit dem Lesen eines fremdsprachigen Textes,
    z.B. Griechisch. Zunächst sollte man beim versuchen, den groben Aufbau von Strukturen
    zu erkennen, z.B. Abschnitte und darin enthaltene Sätze im griechischen Text. Dann
    schaut man in eine Struktur hinein, aus welchen Einzelteilen sie aufgebaut ist, z.B. findet
    man in einem Satz die einzelnen griechischen Wörter. Jedes Wort besteht aus
    aneinandergereihten Buchstaben und hat einen Sinn, entsprechend gehören einige
    aneinandergereihte Bytes zusammen und haben eine bestimmte Funktion, welche durch
    Ausprobieren zu entschlüsseln ist. Falls diese Erklärung zu kompliziert war, so kann man
    mal einen Blick auf untenstehende Entschlüsselungsbeispiele werfen.
•   im Laufe der Zeit wird man sich ein paar Begriffe aus der Informatik aneignen müssen
    (siehe untenstehender Abschnitt)
•   Die prinzipielle Vorgehensweise beim Erforschen von OVLs und anderen RCT3 Daten ist
    wie folgt:
    Man schaut sich den Hexcode an und versucht Zusammenhänge durch Rätseln und
    geschicktes Kombinieren (erfordert schlaues Köpfchen fürs Knobeln), oder aber durch
gezieltes Rumprobieren (erfordert viel Geduld und Zeit) herauszufinden – siehe
    untenstehende Entschlüsselungsbeispiele. Damit wurde die Funktion eines kleines
    Datenstücks entschlüsselt (quasi ein griechisches Wort übersetzt). Auf diese Art kann
    man stückweise eine ganze Struktur erforschen (quasi einen Abschnitt im griechischen
    Text). Als Ziel gilt, schließlich alle in den Daten befindlichen Strukturen zu kennen (quasi
    komplette Übersetzung des Griechischen).
•   Es ist ratsam, ein automatisches Entschlüsselungs-Programm zu schreiben, welches die
    bereits erforschten, bekannten Datenstücke und deren Funktionen kenntlich macht und
    auflistet, wodurch die weitere Arbeit an den noch unbekannten Teilen vereinfacht wird.
             o Ein solches Entschlüsselungs-Programm stellt eine rechtliche Grauzone dar
                (siehe „Reverse Engineering“ im RCT3-Lizenzabkommen), weshalb es nur für
                private Zwecke verwendet und nicht allen RCT3-Usern weltweit zugänglich
                gemacht werden sollte. Wenn man nur eigene Parkdateien, CSOs, CTRs,
                CFRs und ähnliche selbst erstellte Daten mit dem Programm analysiert, dann
                ist das natürlich absolut legal.
             o Beim Entschlüsselungs-Tool wäre ein modularer Aufbau (womit ich jetzt nicht
                Module im strengen Sinn der Informatik meine!) sehr empfehlenswert. Damit
                könnten dann die von mithelfenden Usern neu zugelieferten Daten einfach ins
                Programm eingebunden werden. Und die User könnten die jeweils neusten
                Modulpakete downloaden und in ihr Entschlüsselungs-Tool einfügen.
                Desweiteren sollten die aktuellen Stände der Module in einer Datenbank
                verfügbar sein, um zu sehen, was alles bereits erforscht und was noch zu
                entschlüsseln ist.
•   Sobald nach Wochen oder Monaten des Erforschens große Teile der Strukturen bekannt
    sind, kann man beginnen, ein Tool zu programmieren, welches neue OVLs mit diesen
    Strukturen und eigenen Werten schreibt (wie Importer oder CTR_Creator).
•   Die .ovl und .dat Dateien sind mit einem einfachen Texteditor nur begrenzt lesbar (wie im
    Bild „Adriane J“ und „Ramondo G“). Der große Rest mit wichtigen Zahlenwerten sieht im
    Texteditor wie ein chaotischer Buchstabensalat aus.




    Genaugenommen sind allein die Strings verständlich (also Namen und Texte, siehe
    untenstehenden Abschnitt mit diesem Begriff aus der Information), welche sich vor allem
am Dateibeginn in Form von sogenannten Deklarationen befinden.




•   Einzig und allein mit einem Hexeditor sind die Daten und Zahlen korrekt lesbar und
    entschlüsselbar. Wie man im folgenden Bild sieht, sind besteht der ansonsten chaotische
    Buchstabensalat aus einzelnen Zahlenwerten, die alle ihre eigene, wichtige Funktion
    haben.
Im untenstehenden Bild, einem Entschlüsselungsbeispiel, sieht man beispielsweise,
dass die Zahlen (in gelben Kästen) der Länge des folgenden Textes entsprechen. Dies
hab ich dadurch enträtselt, dass ich mir die beiden Bytes zwischen dem roten und blauen
Kasten anschaute und nach Kombinationen und Verbindungen zu anderen Daten suchte.
Ferner weiß ich nun, dass „InWater“ nur die Werte 1 oder 0 annehmen kann (bool) und
dass „LevelOfDetail“ Werte zwischen 0 und 255 besitzt.




Entschlüsseln von gespeicherten Parkdateien
•   Die Parkdateien befinden sich unter "/Eigene Dateien/RCT3/Campaigns" (Szenario-
    Modus) bzw. "/Eigene Dateien/RCT3/Parks" (Sandkasten-Modus).
•   Wenn man alle Begriffe am Anfang der Parkdatei mal durchgeht, dann sieht man, was
    alles für jeden Peep im Park abgespeichert wird. Dies ist unter anderem:
    Name des Peeps, Typ (Geschlecht, Kind/Teen/Erwachsener), Aussehen (Kleidung),
    Position x/y/z-Koordinaten, Blickrichtung in x/y/z-Ausrichtungsvektor, Eigenschaften
    (Übelkeit, Bahnintensität usw.), Verhalten (Warten, Gehen, usw.), Durst, Hunger, Geld,
    vorhandene Gegenstände in den Händen und vieles mehr.
•   Am Ende der Datei befinden sich die ganzen Peeps mit Namen und Eigenschaften. Ich
    habe mit dem Peep-Editor einen eigenen Peep namens "Markus" erstellt, den ich in der
    Parkdatei finde, wenn ich sie mit einem Texteditor öffne und nach "M a r k u s" suche.
    Entsprechend kann ich jeden Peep auch in der Hexdatei finden. Alle Zahlen zwischen
    dem beispielhaften Eintrag „Adriane J“ und „Raymondo G“ legen Eigenschaften und
Verhalten von Adriane fest.
•   Am Beispiel von Peep „Adriane J“ im Hexeditor zeige ich mögliche Ansätze für die
    Entschlüsselung der Zahlenwerte:




           o   Über sinnvolles Kombinieren der Zahlenwerte aus dem Spiel mit den
               Zahlenwerten im Hexeditor kann man die Position der Zahl für eine bestimmte
               Funktion finden. z.B. hat Adriane im Spiel 57 Euro, sodass man im Hexeditor
               nach 57 sucht und somit die Position für die Funktion „Geldbesitz“ kennt.
           o   Durch den Vergleich von Adrianes Werten im Hexeditor mit den Werten einem
               anderen Mädel könnte ein übereinstimmender Wert beispielsweise „Female
               Teenager“ sein. Im Vergleich zu einem anderen Jungen sollte der Wert nicht
               übereinstimmen, sodass man die Position der Funktion „Peeptyp“ ermittelt
               hat.
           o   Durch gezieltes Rumprobieren hab ich bisher die meisten Funktionen
               erforscht. Dazu hab ich einfach mal im Hexeditor irgendwo hinter den
               Peepnamen die Zahl 999 (oder 000 oder 001 oder 012 oder ...)
               reingeschrieben und im Spiel geschaut, was mit dem Peep passiert. Hat er
               andere Koordinaten, andere Kleidung, anderes Verhalten, ...?
               Beim Rumprobieren kann es jedoch häufig passieren, dass das Spiel
               abstürzt, weil man eine unsinnige Zahl in die Datei geschrieben hat.
Entschlüsseln von OVL Dateien
•   [wird ergänzt, wenn sich das neue Team etabliert hat und die ersten Aufgaben (Peeps in
    .dat Parkdatei) erfolgreich gelöst wurden; dann werde ich hier die mir bekannten OVL-
    Strukturen erklären, womit das Team die Entschlüsselung von komplexeren Daten
    (Peeps, Animals, Pools usw. in .ovl Dateien) starten kann]



Begriffe aus der Informatik
Es folgt eine Auflistung von einigen Begriffen aus der Informatik, wobei die Liste natürlich
nicht vollständig ist. Für detailliertere Informationen eignet sich Wikipedia sehr gut.
• Werte oder Adressen werden oftmals in hexadezimaler Schreibweise mit $... oder mit
   0x... angegeben, z.B. $E7 oder 0xE7, wobei beide Schreibweisen gleichwertig sind. Ich
   verwende aus Gewohnheit immer $.
• byte = besteht aus 8 bit. Der Wert eines Byte liegt in dezimaler Schreibweise zwischen 0
   und 255, in hexadezimaler Schreibweise zwischen $00 und $FF. Ein Byte kann auch als
   ein Buchstabe/Zeichen dargestellt werden, siehe Wikipedia/ASCII-Tabelle.
• uint8 = unsigned integer 8 bit = ganze Zahl zwischen 0 und 255
• int8 = (signed) integer 8 bit = ganze Zahl zwischen -128 und +127
• float32 = float 32 bit (Kommazahl)
• bool = 1 oder 0 = wahr oder falsch (Flag)
• string = Text mit mehreren Buchstaben/Zeichen (jeweils ein Byte), z.B. „Name“
• RCT3 Daten beinhalten zwei verschiedene Arten von Texten
            o Text mit vorheriger Längenangabe, beispielsweise .Name = $04 $4E $61 $6D
                $65, wobei die $04 die Länge des Textes (hier 4 Buchstaben) ist.
            o Text mit folgender Nullterminierung, beispielsweise N.a.m.e... = $4E $00 $61
                $00 $6D $00 $65 $00 $00 $00, wobei die Nullterminierung $00 $00 am Ende
                RCT3 anzeigt, dass dort der Text endet.
• soweit ich gesehen habe verwendet RCT3 die „least significant bit“ Anordnung (siehe
   Wikipedia/Bitwertigkeit). Somit findet man die Zahl $87654321 in den RCT3-Daten
   abgespeichert als $21 $43 $65 $87. Einfaches Beispiel: dezimal 23 = $17 = $00000017 =
   $17 $00 $00 $00.

Weitere ähnliche Inhalte

Andere mochten auch

Trabajo cuadro
Trabajo cuadroTrabajo cuadro
Trabajo cuadropacitina
 
Conclusiones Talis
Conclusiones TalisConclusiones Talis
Conclusiones TalisEducación
 
Educación Invertida
Educación InvertidaEducación Invertida
Educación InvertidaZoila Carrion
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Arthur Lutz
 
CR AG Fédération nationale des Villages étapes
CR AG Fédération nationale des Villages étapesCR AG Fédération nationale des Villages étapes
CR AG Fédération nationale des Villages étapesfnve
 
Retos familiares quedan enterrados
Retos familiares quedan enterradosRetos familiares quedan enterrados
Retos familiares quedan enterradospaulale
 
Hecho en méxico, hecho en gf k confianza del consumidor en 2011- parte i
Hecho en méxico, hecho en gf k  confianza del consumidor en 2011- parte iHecho en méxico, hecho en gf k  confianza del consumidor en 2011- parte i
Hecho en méxico, hecho en gf k confianza del consumidor en 2011- parte iWalkiria Calva
 
Verbesserung der Service Qualität durch Enterprise Feedback Management
Verbesserung der Service Qualität durch Enterprise Feedback ManagementVerbesserung der Service Qualität durch Enterprise Feedback Management
Verbesserung der Service Qualität durch Enterprise Feedback ManagementSpectos GmbH
 
Législatives 2012 : Journal de campagne
Législatives 2012 : Journal de campagne Législatives 2012 : Journal de campagne
Législatives 2012 : Journal de campagne Dominique Dord
 
Software Libre y Aplicaciones en Educacion
Software Libre y Aplicaciones en EducacionSoftware Libre y Aplicaciones en Educacion
Software Libre y Aplicaciones en Educacionmllamas2009
 
Die 1.000-kWh-Kampagne in EcoTopTen
Die 1.000-kWh-Kampagne in EcoTopTenDie 1.000-kWh-Kampagne in EcoTopTen
Die 1.000-kWh-Kampagne in EcoTopTenOeko-Institut
 
E tourisme - optimiser son site pour un meilleur référencement
E tourisme  - optimiser son site pour un meilleur référencement E tourisme  - optimiser son site pour un meilleur référencement
E tourisme - optimiser son site pour un meilleur référencement mariejura
 
Catalogue de la saison 2012-2013 de la Fondation Clément
Catalogue de la saison 2012-2013 de la Fondation ClémentCatalogue de la saison 2012-2013 de la Fondation Clément
Catalogue de la saison 2012-2013 de la Fondation ClémentFondationClement
 
El arca de noé
El arca de noéEl arca de noé
El arca de noéUSET
 

Andere mochten auch (20)

Trabajo cuadro
Trabajo cuadroTrabajo cuadro
Trabajo cuadro
 
D I O S E S A Z U C A R
D I O S  E S  A Z U C A RD I O S  E S  A Z U C A R
D I O S E S A Z U C A R
 
Conclusiones Talis
Conclusiones TalisConclusiones Talis
Conclusiones Talis
 
Educación Invertida
Educación InvertidaEducación Invertida
Educación Invertida
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
 
Belén viviente
Belén vivienteBelén viviente
Belén viviente
 
CR AG Fédération nationale des Villages étapes
CR AG Fédération nationale des Villages étapesCR AG Fédération nationale des Villages étapes
CR AG Fédération nationale des Villages étapes
 
Retos familiares quedan enterrados
Retos familiares quedan enterradosRetos familiares quedan enterrados
Retos familiares quedan enterrados
 
Hecho en méxico, hecho en gf k confianza del consumidor en 2011- parte i
Hecho en méxico, hecho en gf k  confianza del consumidor en 2011- parte iHecho en méxico, hecho en gf k  confianza del consumidor en 2011- parte i
Hecho en méxico, hecho en gf k confianza del consumidor en 2011- parte i
 
Verbesserung der Service Qualität durch Enterprise Feedback Management
Verbesserung der Service Qualität durch Enterprise Feedback ManagementVerbesserung der Service Qualität durch Enterprise Feedback Management
Verbesserung der Service Qualität durch Enterprise Feedback Management
 
Législatives 2012 : Journal de campagne
Législatives 2012 : Journal de campagne Législatives 2012 : Journal de campagne
Législatives 2012 : Journal de campagne
 
Software Libre y Aplicaciones en Educacion
Software Libre y Aplicaciones en EducacionSoftware Libre y Aplicaciones en Educacion
Software Libre y Aplicaciones en Educacion
 
Dios Es Azucar
Dios Es AzucarDios Es Azucar
Dios Es Azucar
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
Die 1.000-kWh-Kampagne in EcoTopTen
Die 1.000-kWh-Kampagne in EcoTopTenDie 1.000-kWh-Kampagne in EcoTopTen
Die 1.000-kWh-Kampagne in EcoTopTen
 
E tourisme - optimiser son site pour un meilleur référencement
E tourisme  - optimiser son site pour un meilleur référencement E tourisme  - optimiser son site pour un meilleur référencement
E tourisme - optimiser son site pour un meilleur référencement
 
Catalogue de la saison 2012-2013 de la Fondation Clément
Catalogue de la saison 2012-2013 de la Fondation ClémentCatalogue de la saison 2012-2013 de la Fondation Clément
Catalogue de la saison 2012-2013 de la Fondation Clément
 
El arca de noé
El arca de noéEl arca de noé
El arca de noé
 
Mi Otra Mujer
Mi Otra MujerMi Otra Mujer
Mi Otra Mujer
 
DeArGe Mitteilungen 3/2000
DeArGe Mitteilungen 3/2000DeArGe Mitteilungen 3/2000
DeArGe Mitteilungen 3/2000
 

Tipps Zum EntschlüSseln Von Rct3 Daten V01

  • 1. TIPPS ZUM ENTSCHLÜSSELN VON RCT3 DATEN von Markus Lomberg, Entwickler von CTRs Version 01 (08.Dez.2009) In diesem Dokument gebe ich einige Tipps für User, die beim Entschlüsseln von RCT3 Daten helfen wollen. Die Tipps sind meist in loser Reihenfolge aufgeführt. Voraussetzungen und Vorbereitungen • benötigt wird folgende Software o RCT3 (möglichst ohne AddOns, was einfacher zu entschlüsseln ist – siehe Abschnitt „Grundsätzliches“) o ein einfacher Texteditor (z.B. Notepad/Editor, Wordpad) o ein einfacher Hexeditor o ein Taschenrechner (z.B. Calculator in Windows) zum Umrechnen von Hex- in Dezimalzahlen o bis auf RCT3 sind alle Tools gratis und frei herunterladbar • ferner benötigt man viel Geduld, einige Zeit zum Rumprobieren und ein schlaues Köpfchen fürs Knobeln • User, die Programme zum Entschlüsseln und später zum Erstellen von Daten (wie Importer und CTR_Creator) schreiben wollen, benötigen natürlich Programmierkenntnisse und die entsprechende Programmiersoftware (z.B. C++) • beim Entschlüsseln modifiziert man probeweise die originalen RCT3-Dateien, welche danach eventuell nicht mehr funktionieren. Deshalb empfiehlt es sich, vorab Sicherheitskopien der Daten zu machen. Grundsätzliches • RCT3 verwendet hauptsächlich „Overlay“ Dateien (.ovl), welche immer als zusammengehörendes Paar (.common.ovl und .unique.ovl) vorliegen. Gelegentlich werden auch „Data“ Dateien (.dat) verwendet, z.B. bei gespeicherten Parks. • die Strukturen in RCT3 Dateien ohne AddOns sind einfacher zu entschlüsseln; die Strukturen in den AddOns sind komplizierter, beinhalten dafür aber auch interessantere Spezialfunktionen im Spiel • Ich vergleiche das Entschlüsseln gerne mit dem Lesen eines fremdsprachigen Textes, z.B. Griechisch. Zunächst sollte man beim versuchen, den groben Aufbau von Strukturen zu erkennen, z.B. Abschnitte und darin enthaltene Sätze im griechischen Text. Dann schaut man in eine Struktur hinein, aus welchen Einzelteilen sie aufgebaut ist, z.B. findet man in einem Satz die einzelnen griechischen Wörter. Jedes Wort besteht aus aneinandergereihten Buchstaben und hat einen Sinn, entsprechend gehören einige aneinandergereihte Bytes zusammen und haben eine bestimmte Funktion, welche durch Ausprobieren zu entschlüsseln ist. Falls diese Erklärung zu kompliziert war, so kann man mal einen Blick auf untenstehende Entschlüsselungsbeispiele werfen. • im Laufe der Zeit wird man sich ein paar Begriffe aus der Informatik aneignen müssen (siehe untenstehender Abschnitt) • Die prinzipielle Vorgehensweise beim Erforschen von OVLs und anderen RCT3 Daten ist wie folgt: Man schaut sich den Hexcode an und versucht Zusammenhänge durch Rätseln und geschicktes Kombinieren (erfordert schlaues Köpfchen fürs Knobeln), oder aber durch
  • 2. gezieltes Rumprobieren (erfordert viel Geduld und Zeit) herauszufinden – siehe untenstehende Entschlüsselungsbeispiele. Damit wurde die Funktion eines kleines Datenstücks entschlüsselt (quasi ein griechisches Wort übersetzt). Auf diese Art kann man stückweise eine ganze Struktur erforschen (quasi einen Abschnitt im griechischen Text). Als Ziel gilt, schließlich alle in den Daten befindlichen Strukturen zu kennen (quasi komplette Übersetzung des Griechischen). • Es ist ratsam, ein automatisches Entschlüsselungs-Programm zu schreiben, welches die bereits erforschten, bekannten Datenstücke und deren Funktionen kenntlich macht und auflistet, wodurch die weitere Arbeit an den noch unbekannten Teilen vereinfacht wird. o Ein solches Entschlüsselungs-Programm stellt eine rechtliche Grauzone dar (siehe „Reverse Engineering“ im RCT3-Lizenzabkommen), weshalb es nur für private Zwecke verwendet und nicht allen RCT3-Usern weltweit zugänglich gemacht werden sollte. Wenn man nur eigene Parkdateien, CSOs, CTRs, CFRs und ähnliche selbst erstellte Daten mit dem Programm analysiert, dann ist das natürlich absolut legal. o Beim Entschlüsselungs-Tool wäre ein modularer Aufbau (womit ich jetzt nicht Module im strengen Sinn der Informatik meine!) sehr empfehlenswert. Damit könnten dann die von mithelfenden Usern neu zugelieferten Daten einfach ins Programm eingebunden werden. Und die User könnten die jeweils neusten Modulpakete downloaden und in ihr Entschlüsselungs-Tool einfügen. Desweiteren sollten die aktuellen Stände der Module in einer Datenbank verfügbar sein, um zu sehen, was alles bereits erforscht und was noch zu entschlüsseln ist. • Sobald nach Wochen oder Monaten des Erforschens große Teile der Strukturen bekannt sind, kann man beginnen, ein Tool zu programmieren, welches neue OVLs mit diesen Strukturen und eigenen Werten schreibt (wie Importer oder CTR_Creator). • Die .ovl und .dat Dateien sind mit einem einfachen Texteditor nur begrenzt lesbar (wie im Bild „Adriane J“ und „Ramondo G“). Der große Rest mit wichtigen Zahlenwerten sieht im Texteditor wie ein chaotischer Buchstabensalat aus. Genaugenommen sind allein die Strings verständlich (also Namen und Texte, siehe untenstehenden Abschnitt mit diesem Begriff aus der Information), welche sich vor allem
  • 3. am Dateibeginn in Form von sogenannten Deklarationen befinden. • Einzig und allein mit einem Hexeditor sind die Daten und Zahlen korrekt lesbar und entschlüsselbar. Wie man im folgenden Bild sieht, sind besteht der ansonsten chaotische Buchstabensalat aus einzelnen Zahlenwerten, die alle ihre eigene, wichtige Funktion haben.
  • 4. Im untenstehenden Bild, einem Entschlüsselungsbeispiel, sieht man beispielsweise, dass die Zahlen (in gelben Kästen) der Länge des folgenden Textes entsprechen. Dies hab ich dadurch enträtselt, dass ich mir die beiden Bytes zwischen dem roten und blauen Kasten anschaute und nach Kombinationen und Verbindungen zu anderen Daten suchte. Ferner weiß ich nun, dass „InWater“ nur die Werte 1 oder 0 annehmen kann (bool) und
  • 5. dass „LevelOfDetail“ Werte zwischen 0 und 255 besitzt. Entschlüsseln von gespeicherten Parkdateien • Die Parkdateien befinden sich unter "/Eigene Dateien/RCT3/Campaigns" (Szenario- Modus) bzw. "/Eigene Dateien/RCT3/Parks" (Sandkasten-Modus). • Wenn man alle Begriffe am Anfang der Parkdatei mal durchgeht, dann sieht man, was alles für jeden Peep im Park abgespeichert wird. Dies ist unter anderem: Name des Peeps, Typ (Geschlecht, Kind/Teen/Erwachsener), Aussehen (Kleidung), Position x/y/z-Koordinaten, Blickrichtung in x/y/z-Ausrichtungsvektor, Eigenschaften (Übelkeit, Bahnintensität usw.), Verhalten (Warten, Gehen, usw.), Durst, Hunger, Geld, vorhandene Gegenstände in den Händen und vieles mehr. • Am Ende der Datei befinden sich die ganzen Peeps mit Namen und Eigenschaften. Ich habe mit dem Peep-Editor einen eigenen Peep namens "Markus" erstellt, den ich in der Parkdatei finde, wenn ich sie mit einem Texteditor öffne und nach "M a r k u s" suche. Entsprechend kann ich jeden Peep auch in der Hexdatei finden. Alle Zahlen zwischen dem beispielhaften Eintrag „Adriane J“ und „Raymondo G“ legen Eigenschaften und
  • 7. Am Beispiel von Peep „Adriane J“ im Hexeditor zeige ich mögliche Ansätze für die Entschlüsselung der Zahlenwerte: o Über sinnvolles Kombinieren der Zahlenwerte aus dem Spiel mit den Zahlenwerten im Hexeditor kann man die Position der Zahl für eine bestimmte Funktion finden. z.B. hat Adriane im Spiel 57 Euro, sodass man im Hexeditor nach 57 sucht und somit die Position für die Funktion „Geldbesitz“ kennt. o Durch den Vergleich von Adrianes Werten im Hexeditor mit den Werten einem anderen Mädel könnte ein übereinstimmender Wert beispielsweise „Female Teenager“ sein. Im Vergleich zu einem anderen Jungen sollte der Wert nicht übereinstimmen, sodass man die Position der Funktion „Peeptyp“ ermittelt hat. o Durch gezieltes Rumprobieren hab ich bisher die meisten Funktionen erforscht. Dazu hab ich einfach mal im Hexeditor irgendwo hinter den Peepnamen die Zahl 999 (oder 000 oder 001 oder 012 oder ...) reingeschrieben und im Spiel geschaut, was mit dem Peep passiert. Hat er andere Koordinaten, andere Kleidung, anderes Verhalten, ...? Beim Rumprobieren kann es jedoch häufig passieren, dass das Spiel abstürzt, weil man eine unsinnige Zahl in die Datei geschrieben hat.
  • 8. Entschlüsseln von OVL Dateien • [wird ergänzt, wenn sich das neue Team etabliert hat und die ersten Aufgaben (Peeps in .dat Parkdatei) erfolgreich gelöst wurden; dann werde ich hier die mir bekannten OVL- Strukturen erklären, womit das Team die Entschlüsselung von komplexeren Daten (Peeps, Animals, Pools usw. in .ovl Dateien) starten kann] Begriffe aus der Informatik Es folgt eine Auflistung von einigen Begriffen aus der Informatik, wobei die Liste natürlich nicht vollständig ist. Für detailliertere Informationen eignet sich Wikipedia sehr gut. • Werte oder Adressen werden oftmals in hexadezimaler Schreibweise mit $... oder mit 0x... angegeben, z.B. $E7 oder 0xE7, wobei beide Schreibweisen gleichwertig sind. Ich verwende aus Gewohnheit immer $. • byte = besteht aus 8 bit. Der Wert eines Byte liegt in dezimaler Schreibweise zwischen 0 und 255, in hexadezimaler Schreibweise zwischen $00 und $FF. Ein Byte kann auch als ein Buchstabe/Zeichen dargestellt werden, siehe Wikipedia/ASCII-Tabelle. • uint8 = unsigned integer 8 bit = ganze Zahl zwischen 0 und 255 • int8 = (signed) integer 8 bit = ganze Zahl zwischen -128 und +127 • float32 = float 32 bit (Kommazahl) • bool = 1 oder 0 = wahr oder falsch (Flag) • string = Text mit mehreren Buchstaben/Zeichen (jeweils ein Byte), z.B. „Name“ • RCT3 Daten beinhalten zwei verschiedene Arten von Texten o Text mit vorheriger Längenangabe, beispielsweise .Name = $04 $4E $61 $6D $65, wobei die $04 die Länge des Textes (hier 4 Buchstaben) ist. o Text mit folgender Nullterminierung, beispielsweise N.a.m.e... = $4E $00 $61 $00 $6D $00 $65 $00 $00 $00, wobei die Nullterminierung $00 $00 am Ende RCT3 anzeigt, dass dort der Text endet. • soweit ich gesehen habe verwendet RCT3 die „least significant bit“ Anordnung (siehe Wikipedia/Bitwertigkeit). Somit findet man die Zahl $87654321 in den RCT3-Daten abgespeichert als $21 $43 $65 $87. Einfaches Beispiel: dezimal 23 = $17 = $00000017 = $17 $00 $00 $00.