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.