The secret of COD ------------------- Achtung! Dieser Text ist HEISS !!! In den folgenden Zeilen wird detailliert beschrieben, wie das 1602-Dateiformat zu knacken ist - gnadenlos und ohne Geheimnisse! So mancher Hobby-Programmierer wird sich vielleicht fragen, woher Chris und ich die Daten haben, um ANNO 1602 mit unserem Editor so stark beeinflussen zu koennen. Die Loesung ist nicht so schwer, wie man vermuten koennte. Das Geheimnis von EDIT 1602 liegt in den Dateien mit der Endung COD, die sich in allen moeglichen Verzeichnissen [Bem.: figuren.COD und haeuser.COD im Anno1602-verzeichnis sowie alle Dateien im Verzeichnis \Szenes (das sind die Missions-Daten] des Spiels befinden. Decodiert man diese Dateien, ergibt sich die Moeglichkeit, auf einfachste Weise alle moeglichen Spieldaten zu veraendern. Die veraenderte Datei muss man dann nur noch zurueckkodieren, und das Spiel arbeitet fortan mit neuen Einstellungen. Fuer diejenigen, die es interessiert, gehe ich an dieser Stelle auf die Einzelheiten der Kodierung ein. Wenn jemand Interesse daran hat, kann er die Dateien selbst einmal dekodieren und sie sich genauer ansehen. Das Schreiben eines Dekoders ist relativ einfach, Vorwissen ueber das Lesen und Schreiben von binaeren Dateien und Textdateien muss man allerdings schon mitbringen. Bei der Kodierung handelt es sich um eine byte-weise Kodierung, das heisst, man geht in Schritten mit jeweils einem Byte vor, um die Verschluesselung zu knacken. Die Kodierung selbst beruht auf einer Inverse-Konvertierung, d.h. fuer jedes Zeichen wird im kodierten Zustand der "Gegenwert" gespeichert. Unter "Gegenwert" versteht man dabei die Zahl, die zusammen mit dem Ausgangswert den maximal in der Variablen speicherbaren Wert ergibt. Bei einem Byte z.B. ist der Maximalwert 255, bei einem Word hingegen betraegt er 65535. Die Funktion zum Errechnen eines Inverse-Wertes bei Bytes sieht also wie folgt aus: Loesungswert = 255 - Ausgangswert. Geht man nach diesem Schema vor, erhaelt man fuer den Wert 0 den Wert 255 als Loesungswert. Fuer die Eingabe von 5 erhaelt man 255 - 5, also 250, als Rueckgabe, und so weiter. Die Kodierung bei ANNO 1602 beinhaltet jedoch einen winzigen Unterschied: Anstatt von 255 als Maximalwert auszugehen, hat MAX DESIGN die Zahl 256 als Maximalwert benutzt (was wahrscheinlich bloss ein Versehen [Bem.: oder Absicht?] war). Die Funktion zur Dekodierung der ANNO 1602 -Bytes lautet daher so: Loesungswert = 256 - Ausgangswert. Klappert man mittels dieser Funktion eine ganze COD-Datei ab, ergibt sich als Ausgabe eine reine Textdatei, die sich mit einem gewoehnlichen Text-Editor anzeigen laesst (am besten mit einem Win-Editor wie Notepad, weil nur dann die Umlaute richtig dargestellt werden). Aber Vorsicht: Beim Abaendern von Daten ist dringend darauf zu achten, dass die Gross- und Kleinschreibung beibehalten wird und keine Kommentarzeilen geloescht werden. Ausserdem empfiehlt sich natuerlich vor dem Aendern von Eintraegen das Anfertigen von Sicherheitskopien! Um die Dateien fuer ANNO 1602 wieder lesbar zu machen, muessen sie nur noch mit dem gleichen Algorithmus kodiert werden, der auch schon zur Dekodierung verwandt wurde. Enjoy! [Bem.: Dieser Text stammt von ... Christoph Meyer Roemerstrasse 72 D - 50996 Koeln und Daniel Kastenholz Kurt-Weill-Weg 30 D - 50829 Koeln und wurde zusammen mit dem von beiden programmierten Anno 1602-Editor auf der Cover-CD der aktuellen PC Games 10/98 (Lesereinsendungen 03) veroeffentlicht. Ich habe den Text vom DOC-Format zu Plain TXT umgeschrieben, damit er auch auf NICHT-WINDOWS-Systemen problemlos lesbar ist. Charlie]