Eine monochrome 240x240 Grafik wird irgendwie komprimiert. Aus 57600 Pixeln bzw. 7200 Bytes werden dadurch 3500-5500 Bytes, je nach Anzahl der schwarzen Pixel. Ob die Daten verschlüsselt sind, weiß ich nicht. Ich kann von verschiedenen Bildern komprimierte und unkomprimierte Daten erhalten. Die Software zum Dekomprimieren könnte mit 'falschen' Daten gefüttert werden. Automatisieren aber schwierig. Wie geht man bei sowas vor?
Hallo "Bitte einen Namen eingeben oder einloggen.", wie die Daten komprimiert sind, hängt schlicht vom verwendeten Bildformat ab. Normalerweise ist das an der Fileendung zu erkennen, notfalls mit einem Hex-Editor angucken. Z.B. bei .gif steht auch "GIF" als ASCII im File. Die Dekompressionssoftware prüft normalerweise die erwarteten Formate auf Integrität, und bricht bei Nichteinhaltung ab. Ein JPEG-Dekompressor kann kein GIF verarbeiten, usw.
Bitte einen Namen eingeben oder einloggen. wrote: > Eine monochrome 240x240 Grafik wird irgendwie komprimiert. Aus 57600 > Pixeln bzw. 7200 Bytes werden dadurch 3500-5500 Bytes, je nach Anzahl > der schwarzen Pixel. > Ob die Daten verschlüsselt sind, weiß ich nicht. > > > Ich kann von verschiedenen Bildern komprimierte und unkomprimierte Daten > erhalten. > Die Software zum Dekomprimieren könnte mit 'falschen' Daten gefüttert > werden. Automatisieren aber schwierig. > > > > Wie geht man bei sowas vor? Es geht also darum, dass du rauskriegen musst, wie das Bildformat aufgebaut ist. Da du eine unterschiedliche Anzahl Bytes kriegst, ja nachdem wie das Bild aufgebaut ist, liegt der Gedanke an eine Run Length Encoding nahe. Kurz gesagt ist eine Run Length Encoding: Anstatt die Pixel direkt darzustellen, steht im File: Jetzt kommen 25 schwarze Pixel gefolgt von 12 weissen Pixel, gefolgt von 200 schwarzen Pixel, etc. Im File sind dann im Prinzip die Zahlen 25 00 12 255 200 00 enthalten. Die Details mögen variieren, kann auch sein, dass es überhaupt keine Run Length encoding ist. Wie geht man vor: Als erstes besorgst du dir mal einen Hex Editor um in ein File auf Byte Ebene hinschauen zu können. Dann lässt du dir mal das allereinfachste Bild erzeugen: Alle Pixel schwarz. Das nächst einfache Bild: In der linken oberen Ecke (oder rechts oben, oder links unten, oder rechts unten) ein einzelnes weisses Pixel. Wieder in den Hex Editor damit und mal mit dem 'Alles schwarz' Bild vergleichen. Irgendetwas hat sich verändert. Aus den Veränderungen kann man dann versuchen eine Hypothese zu bilden, wie die Codierung aussieht. Mit der Hypothese verschiebt man den weissen Punkt um ein Pixel, überlegt sich vorher welche Erwartungen man hat, wie das ganze im File aussehen könnte und sieht nach ob man recht hat. Und so gehts weiter, bis man von jedem Byte im File erklären kann was es macht und wie es zu seinem Wert kommt. Viel Spass dabei. Das kann durchaus ein paar Tage (oder Wochen) dauern, bis man alle Details herausgefunden hat.
Danke für die Erklärung. Ich werde mal tun, was sich gucken lässt!
Wenn es sich um ein allgemein bekanntes Dateiformat handelt, kann der Typ mit hoher Wahrscheinlichkeit mit Unix-/Linux-Befehl 'file' ermittelt werden. Wenn nicht, würde ich es so versuchen, wie Karl heinz vorgeschlagen hat. Sind die Daten (gut) verschlüsselt, hast du wohl kaum eine Chance, sie zu entschlüsseln. PS: Falls du kein 'file'-Tool zu Hand hast kann ich das gerne für dich ausprobieren, wenn du hier eine Beispieldatei postest.
file sagt, dass es sich um daten handelt. Ich werd erstmal versuchen, vernünftig Daten zu sammeln. Ist aber nicht eilig. Danke.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.