Mit etwas HEX-erei (einem HexEditor (z.B. so einem: http://www.pcfreunde.de/download/d5754/hex-editor-mx/ )) kann man das manuell machen.
Man öffnet die VDF mit einem Hexeditor.
Im Hintergrund öffnet man auch noch den Windows-Taschenrechner.
In der Mitte des Hexeditors sind Kombinationen aus jeweils 2 Zahlen bzw Buchstaben, z.B.
1A 44 B3
Diese zweier-Kombinationen sind Bytes:
Sie sind in der Hexadezimalschreibweise dargestellt, daher auch die Buchstaben. Ein Byte kann alle Zahlen von 0-255 darstellen.
Der Windows-Taschenrechner bietet eine Unwandlungsfunktion von Byte (Hex) in Dezimalzahlen (Dez) und Binärzahlen (Bin), sofern man in der Ansicht "Wissenschaftlich" eingestellt hat.
Binärzahlen, auch Bits genannt sind Einsen und Nullen.
Einpaar Beispiele für Hex-Werte:
A3 = 163
EF = 239
10 = 16
32 = 50
Beispiele für Binärzahlen:
100101 = 37
10=2
11111=31
1000001=65
Für die folgenden Schritte ist dieses Basiswissen nötig.
Der Timestamp ist in einer Kombination aus Hex- und Binärzahlen gespeichert: Man muss also recht viel umrechnen.
Der Timestamp besteht aus 4 Bytes, und zwar vom
280. bis einschließlich dem 283.
Ich mache das ganze mal an einem konkreten Beispiel, undzwar der Meshes_Addon.vdf des Orignalspiels.
Der Timestamp davon liegt bei:
28.7.2003 17:48:46
Die Bytes sind:
17 8E FC 2E
Jetzt müssen wir das ganze Rückwärts lesen:
Wir nehmen erstmel die letzten 2 Bytes:
FC 2E
Und geben sie in umgekehrter Reihenfloge in den Taschenrechner ein (den Modus auf Hex stellen):
2E FC
Das Ganze wandeln wir in Binärzahlen um:
10111011111100
Hier drin stekt das Datum.
Wir schreiben die Zahl am besten mal auf einen Zettel und zählen die Ziffern:
14
es müssen aber 16 sein, daher tun wir vorne noch 2 Nullen hin (die werden nämlich nicht mitausgegeben, da sie nichts am Wert ändern):
0010111011111100
Die ersten 7 Bits sind die Anzahl der Jahre, die nach 1980 vergangen sind.
die nächsten 4 Bits sind die Monate und die letzten 5 Bits die Tage (deshalb mussten wir auch die 2 Nullen hinzufügen, damit diese Aufteilung stimmt).
Also:
0010111 lassen wir vom Taschenrechner umwandeln: 23
1980+23 = 2003
Wir haben somit das Jahr.
Dann die nächsten 4 Bits:
0111=7
Der Monat ist der 7.
Die letzten 5 Bits:
11100=28
Der Tag ist der 28.
Und siehe da: Das ist das exakte Datum des Timestamps.
Dann kommt nur noch die Uhrzeit:
Wir haben ja noch die Bytes
17 8E nicht betrachtet.
Diese geben ähnlich verschlüsselt die Uhrzeit an.
Wir geben diese Bytes in umgekehrter Reihenfolge in den Taschenrechner ein, und wandeln sie in Binärzahlen um:
8E 17 =1000111000010111
Jetzt nur noch gucken, ob Nullen fehlen:
Es sind 16 Zifferm, also muss man keine Nullen ergänzen.
Die ersten 5 Bits sind die Stunde:
10001=17
Die nächsten 6 Bits sind die Minute:
110000=48
und die letzten 5 Bits die Hälfte der Sekunden:
10111=23
Rechnet man die Sekunden mal 2, so bekommt man die im Timestamp angezeigten Sekunden:
46
Und die Uhrzeit stimmt auch mit der im Timestamp überein 
Und um den Timestamp zu ändern, muss man das Ganze Spiel von hinten machen.
Beispiel:
Wir ändern den Timestamp auf den 1.8.2003 12:13:28:
Zuerstmal die Uhrzeit:
12=1100=01100 (da es 5 Bits sein müssen, eine 0 davor)
13=1101=001101(da es 6 Bits sein müssen, zwei 0 davor)
28/2=14=1110=01110(da es 5 Bits sein müssen, eine 0 davor)
Zusammengesetzt:
0110000110101110
In Hex umgewandelt:
61 AE
Umgestellt:
AE 61
Nun das Datum:
2003-1980=23=10111=0010111(da es 7 Bits sein müssen, zwei 0 davor)
8=1000
1=1=00001(da es 5 Bits sein müssen, vier 0 davor)
Zusammengesetzt:
0010111100000001
In Hex umgewandelt:
2F 01
Umgestellt:
01 2F
So nun noch an die Uhrzeit drangehangen:
AE 61 01 2F
Damit überschreiben wir nun die Originalen 4 Bytes und speichern die veränderte Datei.
Und Tada! Der Timestamp steht nun auf unserem Beispieldatum.
Will man nur das Datum ändern, kann man die beiden Bytes der Uhrzeit in Ruhe lassen und nur die beiden Bytes des Datums verändern.
Geändert von Sumpfkrautjunkie (13.09.2008 um 14:05 Uhr)