SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
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.

Contenu connexe

En vedette

TIC y Gestión Cultural
TIC y Gestión CulturalTIC y Gestión Cultural
TIC y Gestión CulturalRosendo Medina
 
Tecnología
TecnologíaTecnología
TecnologíaRyu1993
 
Profeciade Maria en Fatima
Profeciade Maria en FatimaProfeciade Maria en Fatima
Profeciade Maria en Fatimahojitadepapel
 
TXIM : Facebook offers et page post
TXIM : Facebook offers et page postTXIM : Facebook offers et page post
TXIM : Facebook offers et page postX-PRIME GROUPE
 
Etude du SNCD Email Marketing Attitude 2013 - Usages et tendances sur l'email...
Etude du SNCD Email Marketing Attitude 2013 - Usages et tendances sur l'email...Etude du SNCD Email Marketing Attitude 2013 - Usages et tendances sur l'email...
Etude du SNCD Email Marketing Attitude 2013 - Usages et tendances sur l'email...Florence consultant
 
Webschool du Jura - Internet ou comment fidéliser ses clients
Webschool du Jura - Internet ou comment fidéliser ses clientsWebschool du Jura - Internet ou comment fidéliser ses clients
Webschool du Jura - Internet ou comment fidéliser ses clientsmariejura
 
Final graduandos 2014
Final graduandos 2014Final graduandos 2014
Final graduandos 2014Alain Cruz
 

En vedette (20)

TXIM - Built-in like
TXIM - Built-in likeTXIM - Built-in like
TXIM - Built-in like
 
Html
HtmlHtml
Html
 
TIC y Gestión Cultural
TIC y Gestión CulturalTIC y Gestión Cultural
TIC y Gestión Cultural
 
SesióN 11 09 Extraordinaria
SesióN 11 09 ExtraordinariaSesióN 11 09 Extraordinaria
SesióN 11 09 Extraordinaria
 
Anleitung ePortfolio
Anleitung ePortfolio Anleitung ePortfolio
Anleitung ePortfolio
 
los mecanismos
los mecanismoslos mecanismos
los mecanismos
 
PresentacióN10 3
PresentacióN10 3PresentacióN10 3
PresentacióN10 3
 
Ansiedad, Defenza Y Autoproteccion
Ansiedad, Defenza Y AutoproteccionAnsiedad, Defenza Y Autoproteccion
Ansiedad, Defenza Y Autoproteccion
 
Proalan.oscardozo70@hotmail.com katherinezapata
Proalan.oscardozo70@hotmail.com katherinezapataProalan.oscardozo70@hotmail.com katherinezapata
Proalan.oscardozo70@hotmail.com katherinezapata
 
Tecnología
TecnologíaTecnología
Tecnología
 
Profeciade Maria en Fatima
Profeciade Maria en FatimaProfeciade Maria en Fatima
Profeciade Maria en Fatima
 
TXIM : Facebook offers et page post
TXIM : Facebook offers et page postTXIM : Facebook offers et page post
TXIM : Facebook offers et page post
 
Planeacion 120524073932-phpapp02
Planeacion 120524073932-phpapp02Planeacion 120524073932-phpapp02
Planeacion 120524073932-phpapp02
 
Portafolio 2
Portafolio 2Portafolio 2
Portafolio 2
 
Feliz Navidad
Feliz NavidadFeliz Navidad
Feliz Navidad
 
Verdades Biblicas Contemporaneas no1
Verdades Biblicas Contemporaneas no1Verdades Biblicas Contemporaneas no1
Verdades Biblicas Contemporaneas no1
 
Irena Sendler
Irena SendlerIrena Sendler
Irena Sendler
 
Etude du SNCD Email Marketing Attitude 2013 - Usages et tendances sur l'email...
Etude du SNCD Email Marketing Attitude 2013 - Usages et tendances sur l'email...Etude du SNCD Email Marketing Attitude 2013 - Usages et tendances sur l'email...
Etude du SNCD Email Marketing Attitude 2013 - Usages et tendances sur l'email...
 
Webschool du Jura - Internet ou comment fidéliser ses clients
Webschool du Jura - Internet ou comment fidéliser ses clientsWebschool du Jura - Internet ou comment fidéliser ses clients
Webschool du Jura - Internet ou comment fidéliser ses clients
 
Final graduandos 2014
Final graduandos 2014Final graduandos 2014
Final graduandos 2014
 

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.