Linux: Magic Numbers für TextMaker und tja...

Hier kann über Nicht-Support-Themen gesprochen werden.
Antworten
Monsterslayer

Linux: Magic Numbers für TextMaker und tja...

Beitrag von Monsterslayer »

Holdrio.

Weil ich gerne unter Linux schneller erkennen möchte, ob eine TextMaker-Datei aus TextMaker 2002 oder 2006 erzeugt worden ist, habe ich mir die Magic Numbers für das file-Kommando in ~/.magic abgelegt. Das scheint gut zu funktionieren. Die Dateien unterscheiden sich, soweit ich sehen kann, im Byte 8 (hat der konkrete Wert wohl noch eine besondere Bedeutung?).

Code: Alles auswählen

0     string  MV\x00\xFF\x0c\x00\x0e\x00
>8   string  \x13                      TextMaker 2006,
>8   string  \x08                      TextMaker 2002,
>>9 string  \x00\x03\x00-YA1   SoftMaker Office Document
Weil das so schön geht, habe ich mir PlanMaker vorgenommen und bin auf die Schnauze gefallen. PlanMaker 2006- und Microsoft Office-Dateien unterscheiden sich in den ersten Bytes überhaupt nicht (mindestens bis inklusive 47). Darum wird auch ohne jedes weitere Zutun jede PlanMaker-Datei als Microsoft Office Dokument erkannt! Aha.

Code: Alles auswählen

user@machine:/tmp$ file test2.pmd
test2.pmd: Microsoft Office Document
Soll das so sein?

Edit: M$-Office
Tobias-L
Beiträge: 3178
Registriert: 01.12.2003 15:44:30
Wohnort: Oberpfalz
Kontaktdaten:

Beitrag von Tobias-L »

Das PlanMaker-Format und das Excel-Format sind ähnlich, jedoch nicht gleich. Daher gibt es auch diese Übereinstimmungen.
Tobias Leißner
Monsterslayer

Linux-Software

Beitrag von Monsterslayer »

Tobias-L hat geschrieben:Das PlanMaker-Format und das Excel-Format sind ähnlich, jedoch nicht gleich. Daher gibt es auch diese Übereinstimmungen.
Macht ja nichts, aber solange ich unter Linux arbeite, ist PlanMaker ein Linux-Programm (koste es, was es wolle). Es wäre schön, SoftMaker könnten das Dateiformat um eine eindeutige Kennzeichnung und auch die Versionsinformation ergänzen. Zum Beispiel so, wie das im PDF gemacht ist.
Tobias-L
Beiträge: 3178
Registriert: 01.12.2003 15:44:30
Wohnort: Oberpfalz
Kontaktdaten:

Beitrag von Tobias-L »

Werde mal bei den Programmierern nachfragen, ob man hier eine gute Methode kennt.
Tobias Leißner
Monsterslayer

Beitrag von Monsterslayer »

Tobias-L hat geschrieben:Werde mal bei den Programmierern nachfragen, ob man hier eine gute Methode kennt.
Naja. Das Ändern des Dateiformats wird so rasch kaum beschlossen werden (auch, wenn es hier eigentlich nur um ein Kinkerlitzchen geht). Aber vielleicht kennt einer der Cracks ein sicheres Merkmal jenseits des 47ten Bytes, an dem man jetzt schon PlanMaker-Dateien und ihre Version erkennen kann.
Tobias-L
Beiträge: 3178
Registriert: 01.12.2003 15:44:30
Wohnort: Oberpfalz
Kontaktdaten:

Beitrag von Tobias-L »

Die Byte-folge

91 74 08 8A 64 52 D4 11

muss in der Datei vorkommen :-(
Die Position ist leider nicht einfach zu berechnen, die 'file' Kommandosprache gibt das nicht her. Die MSOffice definitionen in magic.mime testen nur den Header der Container-datei, den benutzt auch PlanMaker.

Und bei TextMaker gibt der Wert in Byte 8 die interne Version der Datei an (zusammen mit Byte 10)
Tobias Leißner
Monsterslayer

Beitrag von Monsterslayer »

Die Byte-folge

91 74 08 8A 64 52 D4 11

muss in der Datei vorkommen :-(
Prima, damit kann man experimentieren. Man müsste doch ohne exakte Position auskommen, zumal die Bytes im Dateikopf beim Testen ausgenommen werden... Darum muss ich mich nochmal kümmern.
Und bei TextMaker gibt der Wert in Byte 8 die interne Version der Datei an (zusammen mit Byte 10)
Danke ! :wink:

Edit: So funktioniert es primitiv:

Code: Alles auswählen

#SoftMaker PlanMaker
48     search/0x3000 \x91\x74\x08\x8a\x64\x52\xd4\x11 PlanMaker 2006
Ich habe mit kürzeren und längeren PlanMaker-Dateien, auch mit mehreren Tabellen in einer Datei, experimentiert und bisher keinen Schiffbruch erlitten. Bei wesentlich weniger als 12288 versuchten Matches wird wieder ausschließlich ein Microsoft Office Dokument erkannt.

Edit II: ... wobei es für den file-Befehl doch völlig egal ist, ob man 13000, 50000 oder 100000 Übereinstimmungen sucht. Wir betreiben keine 386er und das Zeug ist auch nicht in Java geschrieben. :wink:
Edit III: Ich kann aba ganz doll Hex-Zahlen lesen...
Antworten

Zurück zu „Sonstiges“