====== Reverse Engineering der Update Daten ====== * ''.updatedata'' Dateien sind normale ''.zip'' Archive: % file 3f_00000002_00001120_30_00000000_00000023.updatedata 3f_00000002_00001120_30_00000000_00000023.updatedata: Zip archive data, at least v1.0 to extract % unzip -l 3f_00000002_00001120_30_00000000_00000023.updatedata Archive: 3f_00000002_00001120_30_00000000_00000023.updatedata Length Date Time Name --------- ---------- ----- ---- 256 2018-09-27 12:56 3f_00000002_00001120_30_00000000_00000023 5990 2018-09-27 12:56 3f_00000002_00001120_30_00000000_00000023.par 266 2018-09-27 12:56 3f_00000002_00001120_30_00000000_00000023.xml --------- ------- 6512 3 files * Jede ''.updatedata'' enthält drei Dateien die exakt so heißen wie die ursprüngliche Updatedatei, einmal ohne Endung, einmal mit ''.xml'' und einmal mit ''.par''. Die ''.par'' ist auch eine XML Datei: % file 3f_00000002_00001120_30_00000000_00000023.xml 3f_00000002_00001120_30_00000000_00000023.xml: XML 1.0 document, ASCII text % file 3f_00000002_00001120_30_00000000_00000023.par 3f_00000002_00001120_30_00000000_00000023.par: XML 1.0 document, ASCII text % file 3f_00000002_00001120_30_00000000_00000023 3f_00000002_00001120_30_00000000_00000023: data * Die ''.xml'' enthält die SHA256 Checksummen aller im Archiv enthaltenen Dateien exklusive der einen Datei ohne Endung und sich selbst: % cat 3f_00000002_00001120_30_00000000_00000023.xml 3f_00000002_00001120_30_00000000_00000023.par * Die ''.par'' Datei enthält Metadaten über die Updatedaten. Die ''.par'' für Regions ID ''1120'' referenziert alle existierenden Updatedateien: 48 2 2 63 4384 4384 35 0 2 2018 (V8.0) ECE Add. data 2018 (V8.0) ECE Add. data EUROPE EUROPE 3f_00000002_00001121_40_00000000_00000023.updatedata 3f_00000002_00001123_80_00000000_20180801.updatedata 3f_00000002_00001125_20_00000000_00000023.updatedata 3f_00000002_00001126_20_00000000_00000023.updatedata 3f_00000002_00001127_20_00000000_00000023.updatedata 3f_00000002_00001128_20_00000000_00000023.updatedata 3f_00000002_00001129_20_00000000_00000023.updatedata 3f_00000002_0000112A_20_00000000_00000023.updatedata 3f_00000002_0000112B_20_00000000_00000023.updatedata 3f_00000002_0000112C_20_00000000_00000023.updatedata 3f_00000002_0000112D_20_00000000_00000023.updatedata 3f_00000002_0000112E_20_00000000_00000023.updatedata 3f_00000002_0000112F_20_00000000_00000023.updatedata 3f_00000002_00001130_20_00000000_00000023.updatedata 3f_00000002_00001131_20_00000000_00000023.updatedata 3f_00000002_00001132_20_00000000_00000023.updatedata 3f_00000002_00001133_20_00000000_00000023.updatedata 3f_00000002_00001325_90_00000000_00000023.updatedata 3f_00000002_00001326_90_00000000_00000023.updatedata 3f_00000002_00001327_90_00000000_00000023.updatedata 3f_00000002_00001328_90_00000000_00000023.updatedata 3f_00000002_00001329_90_00000000_00000023.updatedata 3f_00000002_0000132A_90_00000000_00000023.updatedata 3f_00000002_0000132B_90_00000000_00000023.updatedata 3f_00000002_0000132C_90_00000000_00000023.updatedata 3f_00000002_0000132D_90_00000000_00000023.updatedata 3f_00000002_0000132E_90_00000000_00000023.updatedata 3f_00000002_0000132F_90_00000000_00000023.updatedata 3f_00000002_00001330_90_00000000_00000023.updatedata 3f_00000002_00001331_90_00000000_00000023.updatedata 3f_00000002_00001332_90_00000000_00000023.updatedata 3f_00000002_00001333_90_00000000_00000023.updatedata 3f_00000002_00001124_70_00000000_00000023.updatedata * Die referenzierten XML Schemata sind nicht öffentlich abrufbar. * Die Updatedaten für Region ''1123'' und ''1124'' enthalten ''.patch'' Dateien welche mit der Stringmagic ''NDSPatch'' anfangen: % file Maintenance.patch Maintenance.patch: data % xxd Maintenance.patch 00000000: 4e44 5350 6174 6368 0500 0000 0000 0000 NDSPatch........ * Die Updatedaten für die Karten (z.B. ''1128_30'' für Deutschland) enthalten auch ''.patch'' Dateien mit der gleichen Stringmagic. Jede Region enhält eine ''.patch'' Datei. * Die Updatedaten für die Sprache (z.B. ''1328_90'' für Deutschland) enthalten sehr viele Dateien, hauptsächlich ''.fcf'' aber auch wieder eine ''.patch'' sowie SQLite Datenbanken (''.sqlite'') *