Ergebnis 1 bis 20 von 24

Thema: Hilfe: Entschlüsselung von binären dateien.*edit*

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Hilfe: Entschlüsselung von binären dateien.*edit*

    Hallo erstmals.
    Ich habe schon lange daran gearbeitet ein PSX spiel zu rippen,und zwar immer mit dem Vorgang :
    Screens machen->Rauseditieren...
    und es kostet zeit,kraft und nerven >_<

    Ihr müsst wissen,ich habe auch schon versucht,mit tools die Tiles und Sprites aus dem spiel zu rippen,aber bei dem spiel funksts überhaupt nicht.
    Das spiel heißt ,,Alundra'' und ist ein 2D-Adventure Spiel wie Zelda.

    Das einzige was etwas rausrippen konnte war der PSX multi converter:
    http://i185.photobucket.com/albums/x...g?t=1187289261

    Aber das wars schon.Ich glaube auch net das es in zukunft tools dafür geben wird.
    Wisst ihr,die tools waren in der lage nur zwei dateien zu rippen:
    http://i185.photobucket.com/albums/x...g?t=1187289263

    Die zwei dateien waren für die Credits und das Intro Menü bestimmt.
    Aber ich möchte unbedingt die .bin dateien rippen,wo der Rest sich befindet:
    http://i185.photobucket.com/albums/x...g?t=1187289264

    (mit Psound konnte ich schon die Sound Effekte rippen,das habe ich schon geschaft )

    Aber die tools können nicht darin was ausfindig machen,entweder,weils .bin datei sind,oder die tiles/sprites in andere formate anstelle des typischen TIM-formats sind...

    Ich klinge gerade sehr besserwisserisch,tut mir auch leid ;_;
    Es gibt jetzt nur noch eine EINZIGE möglcihkeit:
    Per C++ rippen

    Nun,wieso mache ich es dann nicht?
    Ganz einfach:
    Ich kann kein C++ und habe auch nicht vor zu lernen.
    Ich habe einfach keine Zeit dazu,das manuelle rippen hat mir schon genug zeit gekostet >_<

    Deswegen suche ich nach einem Programmierer,der mir dabei helfen könnte das spiel zu rippen.
    Ich werde auch Credits geben,jede menge credits^^.

    Wäre jemand interessiert mir zu helfen?

    [Edit=Luki, Reason=Konsistenz][/Edit]

    Geändert von Ineluki (20.08.2007 um 19:01 Uhr) Grund: Rippen ist illegal,aber hilfe zum Umgang mit C++ ist in Ordnung

  2. #2
    meines Wissens nach ist sowas illegal, insofern ist dieser thread sowas wie eine aufforderung zur beihilfe zu einer straftat ... oder so.

    ganz abgesehen, das ich mir ned vorstellen kann, das jemand sowas für ein paar chredits machen wird. Das scheint mir doch schon ein erheblicher aufwand.

  3. #3
    Es ist nicht illegal.
    Solange man erwähnt wem diese Sprites gehöhren kann man sie verwenden und in Sprite seiten hochladen:
    http://www.spriters-resource.com/

    Ich weiß dass rippen illegal klingt, ist aber gemeind,die Ressourcen rauszuhohlen und sie in den eigenen Spielen zu verwerten.
    Höhr mal,Leute rippen die ganze zeit tiles und Sprites aus Snes spielen(mario,Terranigma,welche auch von Lachsen gerippt und editiert wurden) und GBA spielen.
    Und die wurden net verhaftet =P.Ich glaube dann würde nur noch die hälfte aller RPG entwickler noch im forum sein...Sonst würde ich auch net so einen thread öffnen.

    Und wieso ist Credits zu wenig für den Aufwand?
    Soll ich etwa die hilfe bezahlen?

  4. #4
    wenn ichs dir doch sage.
    das rippen von resourcen aus spielen, auch wenn du die firma nennst, ist illegal.
    solange sie dir keine explizite erlaubnis gegeben haben, ihr Zeug zu benutzen, darfst du es auch nicht.
    Das du deswegen nicht unbedingt verhafet wirst ist etwas anderes. Ändert aber nichts daran, das es verboten ist.
    s auch dieser thread:
    http://www.multimediaxis.de/showpost...86&postcount=7

    Zitat Zitat
    Und wieso ist Credits zu wenig für den Aufwand?
    Soll ich etwa die hilfe bezahlen?
    So wie ich das verstehe, soll man dir ein programm schreiben, welches das binärformat des Playstation Roms (welches übrigens auch illegal ist... ) entschlüsselt (was auch illegal ist... ²).
    Und das ist ein Aufwand ohne ende.

    Selbst wenn es irgend eine andere Methode gibt (und mir fällt grad keine ein, außer screenshots machen... :P) ist es in jedem falle sehr aufwändig, so das es für lau ganz sicher niemand machen wird. da sind credits in einem spiel, das warschenlich niemal fertig werden wird (nicht gegen dich persönlich gerichtet, das ist nur etwas, das ich in jahrelanger erfahrung mit dem maker gelernt habe...) auch keine angemessene entlohnung.

    Geändert von FF (20.08.2007 um 18:29 Uhr)

  5. #5
    Zitat Zitat von Tantrix_187 Beitrag anzeigen
    Und die wurden net verhaftet =P.Ich glaube dann würde nur noch die hälfte aller RPG entwickler noch im forum sein...Sonst würde ich auch net so einen thread öffnen.
    Wenn jeder für das belangt werden würde, was er mal getan hat oder auch regelmäßig tut, würden in der Tat weniger Leute in diesem Forum sein. Nur weil es die Hersteller nicht interessiert (*), heißt das nicht, dass es rechtlich in Ordnung ist.

    Zitat Zitat von Tantrix_187 Beitrag anzeigen
    Und wieso ist Credits zu wenig für den Aufwand?
    Soll ich etwa die hilfe bezahlen?
    Guter Ansatz, warum nicht?


    (* Zum Teil)

  6. #6
    Rippen ist und bleibt illegal, da es einen Verstoss gegen das Urheberrecht darstellt (UrhG). Das Verstoesse gegen das Urheberrecht wahrscheinlich die haeufigsten Kriminaldelikte sind, und selbige in den meisten Faellen nicht verfolgt werden, tut dem Fakt der Illegalitaet keinen Abspruch, sondern zeigt nur, dass das UrhG einer Revision fuer unsere modernen Zeiten bedarf. Dennoch ist die Verwendung von ganzen Werken dritter oder deren Teilen ohne die schriftliche Erlaubnis des Urheberrechtsinhabers bis 75 Jahre nach dem Tode des Schoepfers nicht gestattet. Und ich bezweifle, dass es SNES oder PSX Spiele gibt, die aelter als 75 Jahren sind.

    Aber abgesehen von dem rechtlichen Problem (da bei privater und nichtkomerzieller Nutzung nur in seltenen Faellen eine strafrechtliche Verfolgung erfolgt) stellt die Entschluesselung eine binaeren Formates insbesondere ohne explizite Kenntnisse des Inhaltsformates ein extrem schwieriges unterfangen dar. Mit C/C++ wird programmiert. Das ist kein fertiges Programm, dem man einfach sagt, es soll etwas extrahieren. Fuer die Entschluesselung des entsprechenden Formates braucht man abhaengig von der Komplexitaet der in der Binaerdatei verwendeten Datenstrukturen wahrscheinlich 10 bis 100 Arbeitsstunden, wenn nicht sogar erheblich mehr. Wenn das Format entschluesselt ist, ist das Schreiben des eigentlichen Programms in C/C++ meist nicht mehr das grosse Problem und innerhalb von ca. 10 Stunden erledigt. In Anbetracht dieses Zeit- und Arbeitsaufwandes ist eine Hilfe fuer ein paar Credits nur dann wahrscheinlich, wenn dich die betreffende Person sehr gut leiden lann. Ansonsten ist mit einem fairen Stundenlohn von ca. 10,00 Euro netto zu rechnen, sofern nicht die betreffende Person am Thema interessiert ist und dir einen Freundschaftspreis anbietet.

    Wie du siehst kommst du mit einer "Hey, ich hab ein Problem, also loest mir das mal, damit ich keine Arbeit habe" Einstellung hier nicht sonderlich weit. Du kannst allerdings alle obigen Probleme umgehen, indem du deine Frage dahingehend abaenderst, dass du Fragst, wie man mit C/C++ binaere Daten auslesen kann. Hierzu wirst du mit Sicherheit kompetente und kostenlose Hilfe erhalten. Wenn du dich dann auch noch mit dem Aufbau von gaengigen Datenformaten zur PSX per Google beschaeftigst, solltest du in weniger als einer Woche bis einem Monat in der Lage sein, selbstaendig mit deinen Untersuchungen bzw. Extraktionen zu beginnen. Auf diese Weise umgehst du das Problem der Anstiftung zu einer Straftat als auch die hohen Kosten, die entstehen, wenn du jemanden ein auf dein Problem zugeschittenes Programm entwickeln laesst.

    Ich hoffe, geholfen zu haben.

  7. #7
    Oh...ich verstehe jetzt.
    Danke dass dus mir gesagt...
    wenn du mir helfen würdest wäre es genial und richtig toll.

    Ich bedanke mich auch dass du mich weiter unterstützen wirst^^.

    [Edit=Luki, Reason=Konsistenz]

    Danke für die Aufklärung,ich habe das wirklich nicht gewusst.
    Ich werde selber mich dranmachen die Binären dateien zu entschlüsseln.

    Also ... Wie kann ich mit C/C++ Binärdateien auslesen ?
    Deswegen brauche ich eure hilfe,tuts,emotionale unterstützung(usw.) das zu meistern.
    Keine bange ich habe Bloodshed Dev-C++ ,deswegen ist das erste problem gemeistert^^.

    [/Edit Luki]

    Geändert von Tantrix_187 (20.08.2007 um 19:05 Uhr)

  8. #8
    Gut, Da du ja nicht an den Feinheiten von C/C++ interessiert bist, gebe ich dir schon mal ein kleines Rahmenprogramm vor, und erklaehre, was es macht.

    Wenn du selber Code posten willst, dann verwende bitte das [ Code ]-Tag

    Code:
    #include <stdio.h>
    // Damit bindet man die Bibliothek fuer die Ein und Ausgaberoutinen ein.
    
    int main(int argc, char** argv) {
    // Das ist der Funktionskopf des Hauptprogramms, sowas hat JEDES C/C++ Programm
      FILE *input = fopen("Dateiname","r");
    // Dies oeffnet die Datei "Dateiname" zum Lesen. Ueber die variable input kannst du nun auf die Datei zugreifen.
    
      if ( !input) {
        printf("Konnte die Datei nicht oeffnen.\n");
        return 1;
      }
    // Wenn die Datei nicht geoeffnet werden konnte, gib fehler aus und beende.
    
      char data;
    // Eine ein byte grosse Variable mit Namen data. 
    
      while ( ! feof(input) ) {
    // Solange das Dateiende von input nicht erreicht ist, tue alles zwischen { und }
        fread(&data, sizeof(data), 1, input);
    // Lies ein Byte aus der Datei ein. 
    
    // Hier kommt dann dein Code rein, was du mit den binaerdaten machen willst. 
        printf("%02x ",data);
    // Als Beispiel lassen wir einfach mal den Hexadezimalcode des zeichens ausgeben
      }
    // Die Schleife ist beendet.
      printf("\n");
    // Springe auf die naechste Zeile
      fclose(input);
    // Schliesse die Datei
      return 0;
    // Beende das Programm erfolgreich.
    }
    Natuerlich musst du Dateiname durch den Dateinamen ersetzen. Und das Programm macht nichts ausser in Hex den Inhalt ausgeben.

  9. #9
    Okay,have es mal ausprobiert:
    Code:
    #include <stdio.h>
    int main(int argc, char** argv) {
        FILE *input = fopen(DATAS,r);
          if ( !input) {
        printf(Konnte die Datei nicht oeffnen.\n);
        return 1;
      }
        char data;
          while ( ! feof(input) ) {
              fread(&data, sizeof(data), 1, input);
                  printf(%02x ,data);
                    }
                      printf(\n);
                        fclose(input);
                          return 0;
    Ich hoffe die leersetllen machen keinen unterschied^^''

  10. #10
    Du haettest problemlos die // Zeilen drin stehen lassen koennen.
    // leitet eine Kommentarzeile ein.

    Ausserdem ist dein Einrueckschema sehr unbrauchbar, da man nicht ersehen kann, welche Programmteile auf einer Ausfuehrungsebene liegen.

  11. #11
    Dann Nochmal von neuem:
    Code:
    #include <stdio.h>
    // Damit bindet man die Bibliothek fuer die Ein und Ausgaberoutinen ein.
    
    int main(int argc, char** argv) {
    // Das ist der Funktionskopf des Hauptprogramms, sowas hat JEDES C/C++ Programm
      FILE *input = fopen("DATAS","r");
    // Dies oeffnet die Datei "Dateiname" zum Lesen. Ueber die variable input kannst du nun auf die Datei zugreifen.
    
      if ( !input) {
        printf("Konnte die Datei nicht oeffnen.\n");
        return 1;
      }
    // Wenn die Datei nicht geoeffnet werden konnte, gib fehler aus und beende.
    
      char data;
    // Eine ein byte grosse Variable mit Namen data. 
    
      while ( ! feof(input) ) {
    // Solange das Dateiende von input nicht erreicht ist, tue alles zwischen { und }
        fread(&data, sizeof(data), 1, input);
    // Lies ein Byte aus der Datei ein. 
    
    // Hier kommt dann dein Code rein, was du mit den binaerdaten machen willst. 
        printf("%02x ",data);
    // Als Beispiel lassen wir einfach mal den Hexadezimalcode des zeichens ausgeben
      }
    // Die Schleife ist beendet.
      printf("\n");
    // Springe auf die naechste Zeile
      fclose(input);
    // Schliesse die Datei
      return 0;
    // Beende das Programm erfolgreich.
    }
    Okay,soweit habe ich alles verstanden.( )
    Was ist der nächste schritt?

  12. #12
    Zitat Zitat
    Wenn du dich dann auch noch mit dem Aufbau von gaengigen Datenformaten zur PSX per Google beschaeftigst, solltest du...
    und dann kommen die erwähnten

    Zitat Zitat
    10 bis 100 Arbeitsstunden, wenn nicht sogar erheblich mehr
    ins spiel.

  13. #13
    Hast du das Programm compilieren koennen und hast du es einmal mit einer (kleinen) Datei ausprobiert ?

    Gegebenenfalls musst du unter windows noch ein
    system("pause");
    vor dem return 0; einfuegen, damit das Fenster nicht gleich geschlossen wird.

  14. #14
    Also ich habs jetzt comilierd.
    Ich habe auch die Exe datei dazu gefunden im meinem C++ ordner.
    Aber alles was es macht ist nur kurz öffnen und wieder schließen...
    ich habe dann vor dem return 0; noch system(''pause'');

    eingefügt sodass es dann so aussieht:
    Code:
    system("pause");
    // damit das Fenster nicht gleich geschlossen wird.
    return 0;
    // Beende das Programm erfolgreich.
    }
    Aber dann ist ein fehler eingetreren beim system(''pause''); :
    Zitat Zitat
    Compiler: Default compiler
    Building Makefile: "CDev-Cpp\Makefile.win"
    Executing make...
    make.exe -f "CDev-Cpp\Makefile.win" all
    g++.exe -c Alundra.cpp -o Alundra.o -I"C:/Dev-Cpp/include/c++/3.3.1" -I"C:/Dev-Cpp/include/c++/3.3.1/mingw32" -I"C:/Dev-Cpp/include/c++/3.3.1/backward" -I"C:/Dev-Cpp/lib/gcc-lib/mingw32/3.3.1/include" -I"C:/Dev-Cpp/include"

    Alundra.cpp: In function `int main(int, char**)':
    Alundra.cpp:32: error: `system' undeclared (first use this function)
    Alundra.cpp:32: error: (Each undeclared identifier is reported only once for
    each function it appears in.)

    make.exe: *** [Alundra.o] Error 1

    Execution terminated

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •