data.win - Warum?

  • Win

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • data.win - Warum?

    Hi Leute,

    ich habe grad auf den YYG Foren gelesen, dass das data.win File halb unverschlüsselt ist.
    Hab das nun gecheckt, und es stimmt tatsächlich - mitten im File sind alle <ALLE> ressourcen komplett unverschlüsselt hinterlegt.
    Jeder Variablenname, jeder Spritename, sogar die Inhalte von Scripts und Klassen. :<

    Das ist doch absolut uncool, so kann einfach jeder den gesamten Sourcecode einsehen, ev. sogar decompilen.

    Was genau hat sich YYG hierbei gedacht?
    Kann man das umgehen?
    Wird's in einem zukünftigen Update vielleicht behoben?

    Oder reagiere ich einfach nur über?
    Kann natürlich auch sein. Denn wer interessiert sich schon für den Sourcecode eines kleinen Indie-Games.
    Da muss ich aber wiederum an die größeren, erfolgreicheren GM:S Spiele denken, die Entwickler können das ja nicht einfach so hinnehmen.

    Klärt mich auf, Danke :D
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Inwieweit unverschlüsselt sind die?
    Ich habe selber mal in eine meiner "data.win" Dateien mit dem Text-editor geöffnet.

    Das einzige was unverschlüsselt war, waren die Shader die in klartext im File rumlungerten. Der rest war einfaches byte-wirrwar.
    Was für ressourcen waren bei dir unverschlüsselt? Wie hast du das spiel exportiert?
  • Ich habs als Installer exportiert und installiert.
    Hier ein Auszug:

    generateMap mapID saveMap
    gotoMapPlanet demoScore demoTimer room
    inventoryShow inMenu gameShowInventory logShow gameDrawLog gameDrawHud
    view_xview _viewx
    view_yview _viewy SCORE: string draw_text viewx viewy itemBox itemList
    itemBoxHud index margin invPosX invPosY itemPosX itemPosY h w posx posy
    inventorySlot draw_sprite selectedItemInMenu i playerItemSlots s playerSpellSlots playerKeySkillUse
    keyPressed _swap spellSlot Swapped Item InventorySlot (ID: ) and ItemSlot )
    logAddLine playerInventorySize argument0 str current_hour tHour current_minute tMin current_second tSec 0 : time : line log ds_list_add _item argument1 _index
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • ok? Hast du versucht das Spiel als kompimierte .zip datei zu exportieren?
    Dort hast du auch eine .exe Datei mit einer "data.win" datei. Schau mal ob du dort dieselben Informationen findest.


    Ich habe vor kurzem meine data.win Datei auch nochmals geprüft. Ich exportiere ausschließlich mit der .zip funktion. (Installer ist meiner meinung nach nervig und schreckt viele potenzielle Spieler auch noch ab.)
    in meiner data.win Datei konnte ich bis auf Shader (und einige weitere, scheinbar interne Funktionen des GMs) nichts von meinen eigentlichen Scripts finden.

    /Edit:
    Korrektur:
    Habe doch noch einige sprite/scriptnamen und sogar variablen entdeckt. Müsste man nurnoch schauen ob diese Datei modifizierbar ist, ohne das Spiel zum abstürzen zu bringen.
  • So hab mir das auch mal angeschaut (kann sein das einiges nicht stimmt):

    Sprites und Backgrounds werden auf Texture Pages gepackt und dann als PNG Dateien in die Datei geschrieben. Man kann also problemlos diese herausfischen.
    Sounds werden zu OGGs convertiert und entweder auch in die data.win Datei geschrieben oder gleich als eigenständige Datei hinzugegeben.
    Shaders werden nach HLSL konvertiert und dann in die data.win Datei gepackt.
    GML Code wird zu VASM (keine Ahnung wie das wirklich heißt, steht aber so im Debugger :P) konvertiert und dann in data.win geschrieben.

    Wie du schon selber herausgefunden hast (und LEWA) werden Namen, Werte etc. auch gespeichert. Könnte eventuell problematisch werden wenn es um wichtige Sachen geht.

    Grafiken und Sounds sind ziemlich ungeschützt. Alles andere kann nicht wirklich extrahiert werden.
  • Mann kann die Scripts extrahieren.

    Fügt zu einem beliebigen Script in Eurem Spiel die Zeile "testingthis_lel = 1" hinzu und sucht per STRG+F im Editor nach "testingthis".

    Du wirst es finden, sowieso alle anderen Ressourcen, quasi das gesamte Spiel.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • levarris07 schrieb:

    Ich bin mir sehr sicher, dass das geht.

    Das ist ungefär so wie wenn man versucht eine .exe in C++ Code umzuwandeln obwohl es bei GM um einiges einfacher wäre. Trotzdem ist es noch sehr viel Arbeit. Außerdem könnte man nicht den Original Code widerherstellen lediglich eine Kopie anfertigen die zum selben Resultat führt.

    Larsi schrieb:

    Ich glaub es wird da bald sogar Decompiler geben 8o

    Glaube ich jetzt nicht unbedingt. aber man kann ja nie wissen

    Larsi schrieb:

    die Frage ist bloß, warum Yoyo-games das so gemacht hat.

    Weil es einfach ist :P
  • Aber eine einfache Entschlüsselung würd doch reichen, es den Leuten um einiges schwerer zu machen.
    Was darin resultieren würde, dass es weniger versuchen.

    Muss wohl damit klarkommen, dass mein Projekt nun doch Open-Source ist D:
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)