Weiß jemand, was für Daten das sein könnten?
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
- Krishty
- Establishment
- Beiträge: 8336
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Weiß jemand, was für Daten das sein könnten?
Hi,
Ich brauche mal ein Bisschen Hilfe. Ich habe hier die binäre Ausgabe einer Anwendung, und versuche, die zu visualisieren. Dabei bin ich auf folgenden Block Daten gestoßen; hier Byte für Byte in ein Bild geschrieben: Es könnte sich dabei um Vertexdaten, Dreiecksinformationen oder auch um eine Textur handeln – ich habe keine Ahnung. Ich dachte zuerst an eine RLE-komprimierte Bitmap, weil es weiche Übergänge gibt, aber die Zeilen unterschiedlich lang scheinen …
Eine interessante Eigenschaft habe ich aber gefunden: Die Werte 0x00, 0x11, 0x22, 0x33, …, 0xFF kommen deutlich häufiger vor als ich es gewohnt bin: Hat jemand einen Tipp für mich, welche Art von Daten (Vertex-/Index-/Bildformat) solche Eigenschaften zeigt?
Gruß, Ky
Ich brauche mal ein Bisschen Hilfe. Ich habe hier die binäre Ausgabe einer Anwendung, und versuche, die zu visualisieren. Dabei bin ich auf folgenden Block Daten gestoßen; hier Byte für Byte in ein Bild geschrieben: Es könnte sich dabei um Vertexdaten, Dreiecksinformationen oder auch um eine Textur handeln – ich habe keine Ahnung. Ich dachte zuerst an eine RLE-komprimierte Bitmap, weil es weiche Übergänge gibt, aber die Zeilen unterschiedlich lang scheinen …
Eine interessante Eigenschaft habe ich aber gefunden: Die Werte 0x00, 0x11, 0x22, 0x33, …, 0xFF kommen deutlich häufiger vor als ich es gewohnt bin: Hat jemand einen Tipp für mich, welche Art von Daten (Vertex-/Index-/Bildformat) solche Eigenschaften zeigt?
Gruß, Ky
Re: Weiß jemand, was für Daten das sein könnten?
Hm, Datenanalyse ist natürlich ein spannendes Thema, aber ich habe mich damit bisher kaum beschäftigt. Mit gängiger Mathe-Software, sollte man da aber schon eine Menge machen können.
Ich würde vermutlich versuchen, nach irgendwelchen erwarteten Eigenschaften zu suchen:
- Dreiecke kann man ja bestimmt irgendwie als Punktewolke plotten. Es gibt ja nicht so schrecklich viele Datentypen und Vertexformate, darüberhinaus ist die Position vermutlich ganz vorne. Man könnte also behaupten, es kommen immer 3 float, dann x Byte zusätzliche Vertexdaten und dann die nächste Position. Wenn der Datensatz vollständig ist, müsste ja die Anzahl der Dreiecke ein Teiler der Gesamtgröße sein, mit etwas Glück schränkt dass die suche schon ein.
- Bei Indexdaten würden normalerweise Dreiecke aneinander grenzen, es würde also häufig recht ähnliche Zahlen hintereinander kommen. Darüber hinaus würden auch viele Kanten mehrfach vorkommen. Außerdem könnte ein TriangleStrip abgeschlossen werden, indem zweimal der selbe Index vorkommt. Und man kann natürlich auch hier gucken, ob man am Ende wirklich nur vollständige Dreiecke hätte (wobei das durch potentiell mehrfache TriangleStrips natürlich kein Teiler mehr sein müsste).
- Bei Texturen kann man vermutlich davon ausgehen, dass wenn das Bild direkt aus dem Grafikkartenspeicher kommt, es entweder unkomprimiert oder diese Echtzeit-Spezialkomprimierung nutzt. Da bleiben jetzt auch nicht so schrecklich viele Möglichkeiten übrig, man müsste alle einfach mal durchtesten.
Ansonsten könnte man mal nicht nur einzelne Werte plotten, sondern immer n-Byte zusammen fassen und so prüfen ob bestimme Kombinationen besonders häufig auftauchen.
Ich würde vermutlich versuchen, nach irgendwelchen erwarteten Eigenschaften zu suchen:
- Dreiecke kann man ja bestimmt irgendwie als Punktewolke plotten. Es gibt ja nicht so schrecklich viele Datentypen und Vertexformate, darüberhinaus ist die Position vermutlich ganz vorne. Man könnte also behaupten, es kommen immer 3 float, dann x Byte zusätzliche Vertexdaten und dann die nächste Position. Wenn der Datensatz vollständig ist, müsste ja die Anzahl der Dreiecke ein Teiler der Gesamtgröße sein, mit etwas Glück schränkt dass die suche schon ein.
- Bei Indexdaten würden normalerweise Dreiecke aneinander grenzen, es würde also häufig recht ähnliche Zahlen hintereinander kommen. Darüber hinaus würden auch viele Kanten mehrfach vorkommen. Außerdem könnte ein TriangleStrip abgeschlossen werden, indem zweimal der selbe Index vorkommt. Und man kann natürlich auch hier gucken, ob man am Ende wirklich nur vollständige Dreiecke hätte (wobei das durch potentiell mehrfache TriangleStrips natürlich kein Teiler mehr sein müsste).
- Bei Texturen kann man vermutlich davon ausgehen, dass wenn das Bild direkt aus dem Grafikkartenspeicher kommt, es entweder unkomprimiert oder diese Echtzeit-Spezialkomprimierung nutzt. Da bleiben jetzt auch nicht so schrecklich viele Möglichkeiten übrig, man müsste alle einfach mal durchtesten.
Ansonsten könnte man mal nicht nur einzelne Werte plotten, sondern immer n-Byte zusammen fassen und so prüfen ob bestimme Kombinationen besonders häufig auftauchen.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
Re: Weiß jemand, was für Daten das sein könnten?
Um welche Anwendung oder wenigstens Art von Anwendung handelt es sich denn? Dann könnte man leichter Vermutungen aufstellen. Die Werte klingen jedenfalls recht merkwürdig. Ich würde entweder auf eine Art Verschlüsselung tippen oder auf Bilddaten. Wenn oft 0x00, 0x11, usw vorkommen kann man eventuell auch davon ausgehen, dass jeweils 4 Bit eine spezielle Bedeutung haben und an diesen Stellen gleiche Werte einfach in Paaren oder Sequenzen auftauchen (z.B. Bildausschnitte mit ähnlichen Farben).Krishty hat geschrieben:Ich habe hier die binäre Ausgabe einer Anwendung, und versuche, die zu visualisieren.
Ohne Input kein Output.
Re: Weiß jemand, was für Daten das sein könnten?
Und nun mal mein Schuss ins Blaue: Schau einfach mal, ob da irgendwo an 32-Bit-Grenzen ausgerichtete Floating-Point-Zahlen (von mir aus nur im Bereich zwischen -10.0 und 10.0) drin stecken.
- Krishty
- Establishment
- Beiträge: 8336
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Weiß jemand, was für Daten das sein könnten?
Ja; aber von denen tauchen leider keine auf :(Jonathan hat geschrieben:Ich würde vermutlich versuchen, nach irgendwelchen erwarteten Eigenschaften zu suchen:
Habe ich auch schon gemacht; insbesondere habe ich versucht, die häufigsten Werte zu finden. Ein Muster konnte ich aber nirgends erkennen.Jonathan hat geschrieben:Ansonsten könnte man mal nicht nur einzelne Werte plotten, sondern immer n-Byte zusammen fassen und so prüfen ob bestimme Kombinationen besonders häufig auftauchen.
Ein PSX-Spiel.BeRsErKeR hat geschrieben:Um welche Anwendung oder wenigstens Art von Anwendung handelt es sich denn? Dann könnte man leichter Vermutungen aufstellen.
Guter Punkt! In Nibbles habe ich noch garnicht gedacht; auch das werde ich nachholen. (Fast der gesamte Rest arbeitet mit 16- und 32-Bits-Daten.)BeRsErKeR hat geschrieben:Die Werte klingen jedenfalls recht merkwürdig. Ich würde entweder auf eine Art Verschlüsselung tippen oder auf Bilddaten. Wenn oft 0x00, 0x11, usw vorkommen kann man eventuell auch davon ausgehen, dass jeweils 4 Bit eine spezielle Bedeutung haben und an diesen Stellen gleiche Werte einfach in Paaren oder Sequenzen auftauchen (z.B. Bildausschnitte mit ähnlichen Farben).
Nein; garnicht. Die Exponenten sind wild durcheinander und meist jenseits +/-30. Hätte man von vornherein ausschließen können, wenn ich die Plattform gesagt hätte (siehe BeRsErKeR).eXile hat geschrieben:Und nun mal mein Schuss ins Blaue: Schau einfach mal, ob da irgendwo an 32-Bit-Grenzen ausgerichtete Floating-Point-Zahlen (von mir aus nur im Bereich zwischen -10.0 und 10.0) drin stecken.
Eine andere Idee von mir war übrigens, dass das Werte sind, die auf Tabellen mit 17 Byte breiten Einträgen verweisen. Dann ist mir aber klar geworden, dass sich 0x11, 0x22, … selbst dann nicht häufen sollten …
Ebenfalls offen sind 16-Bit-Farben. Die sehen in einem Byte-Editor immer furchtbar durcheinander aus, dürften aber auf der PSX recht häufig angewandt worden sein.
Ich melde mich zurück, falls ich was finde.
- Krishty
- Establishment
- Beiträge: 8336
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Weiß jemand, was für Daten das sein könnten?
Eine Interessante Regelmäßigkeit, die ich bei der räumlichen Analyse eines anderen Datensatzes gefunden habe:
Wahrscheinlich sind dort Normalenvektoren kodiert.
Re: Weiß jemand, was für Daten das sein könnten?
Tja, keine Ahnung von höherer Mathmatik.
Sieht aus wie ein Wetterfax bild mit großem Hintergrundrauschen beim Empfang, oben und unten kommt und geht er, die Zeilen Längen Synchronisation wäre auch anzupassen :)
Sieht aus wie ein Wetterfax bild mit großem Hintergrundrauschen beim Empfang, oben und unten kommt und geht er, die Zeilen Längen Synchronisation wäre auch anzupassen :)
- Schrompf
- Moderator
- Beiträge: 5114
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Weiß jemand, was für Daten das sein könnten?
Hat es sich inzwischen herausgestellt, wie die Sachen zu lesen sind? :-)
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8336
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Weiß jemand, was für Daten das sein könnten?
Ja. Es handelt sich um einen See von Vertexpositionen, Texturindizes, Normalenvektoren (auf 4096 normiert, darum die Kugel), und 15-Bit-RGB-Werten; jeder Datensatz misst ein minimales Mehrfaches von 2 B und ist mit einer ID gekennzeichnet, die ich aber leider noch nicht entschlüsselt gekriegt habe.