• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Qlandkarte => Mapsource für Linux

GeoGroucho

Geocacher
kiozen schrieb:
"Save Map Set" unter der Kartenliste.

Oliver

Save Mapset lässt mich keine neue Datei anlegen- der Button bleibt so lange ausgegraut, bis eine existierende Datei gewählt wird.

Er legt genau ein File ab, nämlich das gewählte Image. Von gmapsupp ist nirgendwo etwas zu sehen.
Das abgelegte File unterscheidet sich in der Grösse von allen anderen Kacheln im Mapsource-Verzeichnis.

Oliver
 

kiozen

Geomaster
Du hast einen Bug gefunden :)

Wenn Du mit "touch karte.img" die Datei anlegst und dann auswählst sollte es gehen.

Oliver
 

GeoGroucho

Geocacher
kiozen schrieb:
Du hast einen Bug gefunden :)

Wenn Du mit "touch karte.img" die Datei anlegst und dann auswählst sollte es gehen.

Oliver

Hatte ich schon ;-)
Es gibt dann eine Img-Datei (Name beliebig), die von der Grösse her keiner der Dateien im Mapsource-Verzeichnis entspricht.

Oliver
 

kiozen

Geomaster
Das ist ok. Der Header im gmapsupp ist 0x1000 Bytes lang anstatt die üblichen 0x400.

Ab Adresse 0x1000 kommen die FAT Sektionen. Die sind alle 0x100 Bytes lang. Am Anfang stehen eine Kachel ID und eine Zeichenkette mit 3 Zeichen (LBL, RGN...). Irgendwann steht da was mit GARMIN. Da ist Schluss.

Interessant wäre jetzt welche Kürzel (LBL...) wie oft vorkommen. Wenn da ein Unterschied ist wird es interessant.

Oliver
 

GeoGroucho

Geocacher
kiozen schrieb:
Das ist ok. Der Header im gmapsupp ist 0x1000 Bytes lang anstatt die üblichen 0x400.

Ab Adresse 0x1000 kommen die FAT Sektionen. Die sind alle 0x100 Bytes lang. Am Anfang stehen eine Kachel ID und eine Zeichenkette mit 3 Zeichen (LBL, RGN...). Irgendwann steht da was mit GARMIN. Da ist Schluss.

Interessant wäre jetzt welche Kürzel (LBL...) wie oft vorkommen. Wenn da ein Unterschied ist wird es interessant.

Oliver

Ähem- die CitySelect ist verschlüsselt... da wird es schwierig, einen Unterschied zu ermitteln, fällt mir gerade ein.

Edit: Die Strassennamen sind im QLandkarte-Image enthalten, vermutlich als Strings zum Indizieren.

Oliver
 

kiozen

Geomaster
Die Verschlüsselung betrifft nur die paar 20 Bytes für die Maplevelinformation. Alles andere ist lesbar. Es könnte jedoch sein, dass Du die Mapsourcedatei mit dem ersten Byte XORen musst.

Oliver
 

GeoGroucho

Geocacher
kiozen schrieb:
Die Verschlüsselung betrifft nur die paar 20 Bytes für die Maplevelinformation. Alles andere ist lesbar. Es könnte jedoch sein, dass Du die Mapsourcedatei mit dem ersten Byte XORen musst.

Oliver

Gerade XOR im KHexedit drauf losgelassen- allerdings mit bescheidenem Erfolg. Das erste Byte (wie auch die nächsten 9 Bytes) lautet 0x96, das Ergebnis führt nicht weiter.
Die Idee, das 21. Byte zu nehmen, war auch nicht ergiebig.

So sieht das aus ohne Modifikation:

0000:0000 96 96 96 96 96 96 96 96 96 96 9d fe 96 96 96 42 ...........þ...B
0000:0010 d2 c5 dd df db d1 96 94 86 96 86 96 8e 96 96 96 ÒÅÝßÛÑ..........
0000:0020 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0030 96 96 96 96 96 96 96 96 96 42 91 9d 87 9e ae bf .........B....®¿
0000:0040 94 d1 d7 c4 db df d8 96 96 cc c9 c4 df d5 de ba .Ñ×ÄÛߨ..ÌÉÄßÕÞº
0000:0050 b6 c5 d5 de c1 d3 df cc b6 b6 b6 b6 b6 86 96 86 ¶ÅÕÞÁÓß̶¶¶¶¶...
0000:0060 96 9f 97 96 9a b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 .....¶¶¶¶¶¶¶¶¶¶¶
0000:0070 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶
0000:0080 b6 b6 b6 96 96 96 96 96 96 96 96 96 96 96 96 96 ¶¶¶.............
0000:0090 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:00a0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:00b0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:00c0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:00d0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:00e0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:00f0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0100 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0110 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0120 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0130 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0140 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0150 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0160 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0170 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0180 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0190 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:01a0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:01b0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:01c0 97 96 96 99 86 81 96 96 96 96 96 8e 96 96 96 96 ................
0000:01d0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:01e0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:01f0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 c3 3c ..............Ã<
0000:0200 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0210 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0220 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0230 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0240 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0250 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0260 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0270 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0280 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0290 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:02a0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:02b0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:02c0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:02d0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:02e0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:02f0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0300 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0310 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0320 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0330 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0340 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0350 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0360 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0370 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0380 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0390 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:03a0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:03b0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:03c0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:03d0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:03e0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:03f0 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 96 ................
0000:0400 97 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 b6 96 b6 96 96 .¶¶¶¶¶¶¶¶¶¶¶.¶..


Oliver
 

kiozen

Geomaster
Kochen und Support sind zwei Dinge die man nicht zugleich machen sollte.

Der Dump zeigt mir dass Du noch nicht das XOR mit 0x96 gemacht hast.

Ok, hier musst Du xodern. In C sieht das ungefähr so aus:

Code:
        // descramble data, if necessary
        if(*pRawData != '\0'){
            quint8 hash = *pRawData;
            quint8 *p   =  pRawData;
            size_t cnt  = 0;

            do{
                *p = (*p) ^ hash;
                ++p;++cnt;
            } while(cnt != fsize);
        }

Datei öffnen und einlesen musst Du noch selber dazu dichten :)

Du kannst natürlich auch jede andere Sprache benutzen.

Oliver
 

GeoGroucho

Geocacher
kiozen schrieb:
Ok, hier musst Du xodern. In C sieht das ungefähr so aus:

[/code]

Die Abfolge ist unterschiedlich:

Mapsource:
0000:0800 01 49 30 34 41 44 45 34 44 52 47 4e 00 00 00 00 .I04ADE4DRGN....

0000:0a00 01 49 30 34 41 44 45 34 44 52 47 4e 00 00 00 00 .I04ADE4DRGN....

QLandkarte:

0000:1400 01 49 30 34 41 44 45 34 44 4e 45 54 50 66 0a 00 .I04ADE4DNETPf..

0000:1600 01 49 30 34 41 44 45 34 44 4e 45 54 00 00 00 00 .I04ADE4DNET....
0000:1610 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

Die LBL, RGN und NODs sind bei beiden Files gleich häufig.

Bis auf etwa 150 Bytes sind beide Dateien gleich gross, wenn
man die unterschiedlichen Headerlängen berücksichtigt.


Oliver
 

kiozen

Geomaster
Die Abfolge ist nicht so wichtig. Es sollten jedoch alle Sektionen in gleicher Anzahl vorhanden sein. Ich könnte mir vorstellen, dass in der Garmindatei noch weitere Sektionen stehen.

Oliver
 

GeoGroucho

Geocacher
kiozen schrieb:
Die Abfolge ist nicht so wichtig. Es sollten jedoch alle Sektionen in gleicher Anzahl vorhanden sein. Ich könnte mir vorstellen, dass in der Garmindatei noch weitere Sektionen stehen.

Oliver

Wie gesagt, die bekannten Regionen sind identisch vorhanden.
Aber beide Files enden komplett unterschiedlich. Während bei dir ein Copyrightvermerk über die Karte und der Schlüssel steht, ist bei Mapsource davon nichts zu sehen. Stattdessen endet es mit 3200 Bytes 00 und vorher jede Menge Binäres.

Willst du die Files zur Ansicht haben ?

Oliver
 
Oben