Header Information auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Header Information auslesen

    hi,
    ich möchte eigentlich gar nicht dies hier posten wegen crossposting.
    Es geht darum das ich seit längerem versuche Starcraft Replay Dateien auszulesen ohne die php lib repasm welche extra für dies entwickelt wurde von einem Franzosen.
    ich habe es bereits im coding board geposted. Der Stand der dinge ist das es mir zwar mit Hilfe eines Users die Daten auszulesen allerdings werden die Zeichen codiert.
    das script schaut so aus
    PHP-Code:
    <?php

    echo'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">';


    $FileHandle fopen('TEMP11.rep''r');
    fseek($FileHandle,72);
    $Name fread($FileHandle,25); 
    echo 
    "$Name \n";
    ?>
    Das headerformat eines Starcraft Replays schaut so aus
    starcraftReplayHeader - vgce - Replay header format - Project Hosting on Google Code

    Die ausgabe die ich bekomme ist diese
    à� °�$æ]òAð9aμq
    ich möchte die Zeile wo der creator name steht auslesen.

    hättet Ihr vielleicht noch eine Idee wie man es auslesen könnte?
    Zuletzt geändert von Rey; 24.09.2009, 08:43.
    [FONT="Arial"][COLOR="Red"]Noch nicht gelöst[/COLOR][/FONT]
    http://www.php-resource.de/forum/php...-auslesen.html

  • #2
    Hallo,

    also das ist zwar eigentlich keine PHP-Frage im Sinne dieses Forums, aber vielleicht kann man dir ja trotzdem helfen.

    Kannst du so eine Datei mal anhängen? Wie lautet denn der String der rauskommen müsste? Was kommt stattdessen raus (bitte in hex, da der Browser Kontrollzeichen nicht oder nicht korrekt darstellt)?

    Das Offset 72 scheint prinzipiell korrekt zu sein, ich hab es auch grad mal durchgezählt und komme auf dasselbe. Könnte es aber sein, dass vor diesem Format noch irgendwelche Header-, Size-, Checksum- oder ander Kontrollbytes stehen, die man zusätzlich überspringen muss?

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      hi,
      ich habe mal eine datei angehängt.
      Es müsste der String Dragon[Knight] raus kommen.
      Angehängte Dateien
      Zuletzt geändert von Rey; 24.09.2009, 08:44.
      [FONT="Arial"][COLOR="Red"]Noch nicht gelöst[/COLOR][/FONT]
      http://www.php-resource.de/forum/php...-auslesen.html

      Kommentar


      • #4
        Der String taucht in der Datei nicht auf, das ist entweder zusätzlich noch irgendwie gepackt oder die Strings sind wirklich zusätzlich codiert.

        Hier meine Ergebnisse, falls dir jemand anders damit weiterhelfen will:

        Die Bitfolge aus der Datei:
        Code:
        00001010000000001110000000001111
        00000001000100000001100000000000
        00100000101100000001110100000000
        00100100111001100101110111110010
        010000011111000000001111000
        [B]1000100 1110010 1100001 1100111[/B]
        0101111000111000110110011
        Die Bitfolge des erwarteten Strings:
        Code:
        01000100 01110010 01100001 01100111
        01101111 01101110 01011011 01001011
        01101110 01101001 01100111 01101000
        01110100 01011101
        und dasselbe in 7bit:
        Code:
        [B]1000100 1110010 1100001 1100111[/B]
        1101111 1101110 1011011 1001011
        1101110 1101001 1100111 1101000
        1110100 1011101
        Auffällig ist, dass 4 Septetts (fett) in beiden Bitfolgen in der selben Reihenfolge vorkommen. Der Rest ist irgendwie gestückelt.

        Gruß,

        Amica
        Zuletzt geändert von AmicaNoctis; 18.09.2009, 23:16.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          BinReplayUnpacker.java - bwhf - Project Hosting on Google Code
          trunk/src/hu/belicza/andras/bwhf/control - bwhf - Project Hosting on Google Code

          Habe es nicht getestet, aber das sieht richtig aus. Die Klasse müsstest du wahrscheinlich "bloß" nach PHP konvertieren.

          Kommentar


          • #6
            das bloß hört sich so leicht an vor allem wenn man nie etwas mit java am hut hatte
            Zuletzt geändert von Rey; 24.09.2009, 08:44.
            [FONT="Arial"][COLOR="Red"]Noch nicht gelöst[/COLOR][/FONT]
            http://www.php-resource.de/forum/php...-auslesen.html

            Kommentar


            • #7
              Zitat von Rey Beitrag anzeigen
              das bloß hört sich so leicht an vor allem wenn man nie etwas mit java am hut hatte
              Du findest auf RepASM : Download auch die originale C-Variante ("BWLib/unpack.cpp"). Die kommt ohne Java-spezifische Eigenheiten (wie die Exceptions) aus.

              Allerdings bleibt auch das ein ziemlicher Brocken Quellcode, den man nicht so eins-fix-drei nach PHP übersetzen kann. Ich glaube daher kaum, dass du hier irgendjemand findest der|die dir das in seiner|ihrer Freizeit umsetzt (während der Arbeit sowieso nicht). Binärformate mit PHP zu dekodieren, finde ich zwar durchaus interessant, aber hier fehlt mir einfach der Zugang (ich kann mit Computerspielen nicht viel anfangen). Außerdem existiert für dieses Packformat anscheinend keine frei verfügbare Dokumentation, vom C-Quellcode mal abgesehen.
              Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

              Kommentar


              • #8
                Repasm kenne ich und nutze ich auch jedoch gibt es da leider nicht die Möglichkeit den Spiel Ersteller zu ermitteln. deshalb wollte ich diesen anhand des Datei Header ermitteln.
                [FONT="Arial"][COLOR="Red"]Noch nicht gelöst[/COLOR][/FONT]
                http://www.php-resource.de/forum/php...-auslesen.html

                Kommentar


                • #9
                  Zitat von AmicaNoctis Beitrag anzeigen
                  Die Bitfolge des erwarteten Strings:
                  Code:
                  01000100 01110010 01100001 01100111
                  01101111 01101110 01011011 01001011
                  01101110 01101001 01100111 01101000
                  01110100 01011101
                  Darf man Fragen wie du die Bitfolge ausgelesen hast?
                  [FONT="Arial"][COLOR="Red"]Noch nicht gelöst[/COLOR][/FONT]
                  http://www.php-resource.de/forum/php...-auslesen.html

                  Kommentar


                  • #10
                    Du gehst durch den String durch und machst für jedes Byte
                    PHP-Code:
                    decbin(ord($byte)) 
                    Amica
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar

                    Lädt...
                    X