Seite 1 von 1

Unpickle einer Datenstruktur

Verfasst: Mittwoch 2. Oktober 2024, 11:55
von TRM
Hallo, leider komme ich nicht weiter.

Ich versuche eine Datenstruktur, die miitels Base64 kodiert wurde, zu "entpicklen" und in eine Datei zu schreiben.

Leider klappt das nicht, da es sich scheinbar um ein Objekt handelt.

Die Originaldaten stammen aus einer Datei: https://github.com/CensoredUsername/unr ... 0.2/un.rpy (https://github.com/CensoredUsername/unrpyc)

Kann jemand die Daten entschlüsseln?

Code: Alles auswählen

import pickle
import base64
import json

data = pickle.loads(base64.b64decode(b'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'))

output_file_path = 'decode.json'
with open(output_file_path, 'w', encoding='utf-8') as output_file:
    try:
        json.dump(data, output_file, ensure_ascii=False, indent=4)
    except TypeError as e:
        output_file.write(str(data))

Re: Unpickle einer Datenstruktur

Verfasst: Mittwoch 2. Oktober 2024, 20:11
von noisefloor
Hallo,

wie kommst du denn darauf, dass es eine Datenstruktur ist? Es ist, wie du richtig sagst, ein Objekt (gut, ist alles in Python), welches die Methode `decompile_game()` hat. Das sieht man, wenn man die verlinkte Datei mit einem Texteditor öffnet.

Warum du davon ausgehst, dass man das einfach so zu JSON machen kann erschließt sich mir noch nicht.

Gruß, noisefloor

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 4. Oktober 2024, 08:09
von TRM
Hallo und danke für die Antwort.

Mir würde es auch reichen, wenn ich den Inhalt von data binär speichern könnte. Momentan wird lediglich eine Zeile ausgegeben, selbt pprint erzeugt nicht mehr. Aber anhand der Menge an Daten hätte ich vermutet, dass viel mehr enthalten ist.

LG TRM

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 4. Oktober 2024, 09:11
von noisefloor
Hallo,

du verstehst da was nicht bzw. denkst zu simple... `data` _ist_ das Modul `unrypc`. Kann natürlich sein, dass in dem Modul noch irgendwelche andere Daten drin sind. Jedenfalls ist `data` _keine_ reine Datenstruktur. Irgendwie brauchst du auch renpy, so geht es jedenfalls aus der von dir verlinkten Datei `un.rpy` hervor. Um zu verstehen, was da passiert, musst du halt mal den Quellcode Schritt für Schritt nachvollziehen. `data` isoliert betrachten funktioniert jedenfalls nicht.

Gruß, noisefloor

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 4. Oktober 2024, 15:53
von TRM
Hallo noisefloor,

danke, dass du dich mit meiner Frage beschäftigst. Dadurch, dass die Daten, die mittels Base64 codiert sind, zurückgewandelt werden können, erhalte ich eine entsprechende Struktur an Daten.

Wenn ich den String (siehe oben) mittels Base64 decodiere, erhalte ich eine binäre Datei, die ca. 20kb groß ist.( Unter https://www.base64decode.org/ können Dateien decodiert werden.)

Hier ist der Anfang der Datei:

Code: Alles auswählen

m.Á¥..±”)}±½…‘Ì(¡.é±¥ˆ)‘•.½µÁÉ•ÍÌ(¡.}.½‘•.Ì)•¹.½‘”(¡`1<..ã.k.u÷.µÈs.'.Dc.”ï.§.».ƒ.O.'.…Àã.ó..E5#.;.¸˜l....ï.K.¥›.aqÇ.ås.$û.». ƒ.ç.{.T....ç.û.£..ÐÇ.L÷.³.¸..#...Àà;.ÿ...üë.ð¡ø.ÿ....s.g.×.utô..Ç.aU`lK.EO.}eeeg.eeeeg.è§.YµDØï...±7.k.Û.yåÜœ Yß...°å½ÙYW.ùg.É›.Ÿ.t?.û.{.åÏ..;.;.É«.Ô».[.±û.ß...°õ}..8]S.ˆ5ó.¿.ó.ï..ƒ.Ç...ÙW.Ï.Õ?.ƒ.¡°..´Tµo.5›.¿.û.éõ.ç.C.«.ˆ...ü
Der Inhalt der Datei müsste ja nun "ent pickle d" werden. Dabei hoffte ich, ähnlich wie bei Base64, dass ein entsprechender Text zurückgegeben werden würde.
( https://docs.python.org/3/library/pickle.html )

Vielleicht habe ich aber auch das Prinzip von pickle nicht verstanden..?

LG

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 4. Oktober 2024, 16:10
von noisefloor
Hallo,
Dadurch, dass die Daten, die mittels Base64 codiert sind, zurückgewandelt werden können, erhalte ich eine entsprechende Struktur an Daten.
Nein, eben nicht! Du erhältst binäre Daten, die gepickelt sind und die du mittels `pickle.loads()` entpickeln kannst. Und wenn du das machst, erhältst du ein Objekt, welches das `unrypc` Modul ist.

Das lässt sich aber auch ziemlich einfach im interaktiven Interpreter nachvollziehen:

Code: Alles auswählen

>>> import pickle
>>> import base64
>>> data = pickle.loads(base64.b64decode(b'Y3BpY........ usw usw .....'))
>>> data
<module 'unrpyc'>
>>> dir(data)
['Path', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'decompile_game', 'decompile_rpyc', 'decompiler', 'ensure_dir', 'pickle_safe_loads', 'read_ast_from_file', 'sys', 'traceback']
Im von dir verlinkten Code wird danach `data.decompile_game()` aufgerufen und dann kommt auch irgendwie renpy ins Spiel. Was dann genau passiert durchblicke ich nicht bzw. damit beschäftige ich mich auch nicht. Wenn du das verstehen willst solltest du dich halt mal mit renpy beschäftigen.

Gruß, noisefloor

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 4. Oktober 2024, 17:15
von TRM
Vielen Dank. Das hat mir schon weitergeholfen.

Wie kann ich mittels Python erkennen, um welche Art Variable es sich bei data handelt, nachdem es entpickelt wurde?

Ich komme aus der Delphi-Welt, in der Typen nahezu immer explizit deklariert werden müssen, daher ist mir dieses Verhalten in Python unbekannt.

LG TRM

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 4. Oktober 2024, 17:43
von __blackjack__
@TRM: Im Grunde zeigt noisefloor das doch. Die `repr()`-Darstellung vom entpickelten Objekt ist "<module 'unrpyc'>", was den Typ des Objekts verrät: es ist ein Modul. Man kann natürlich auch die `type()`-Funktion verwenden um den Typ zu ermitteln.

In Delphi gehört der Datentyp zum Namen, in Python gehört der Datentyp zum Wert. Und da jeder Wert einen Typ hat und den auch kennt, kann man den Typ von jedem Wert mit `type()` abfragen.

Re: Unpickle einer Datenstruktur

Verfasst: Samstag 5. Oktober 2024, 12:23
von __blackjack__
@TRM: Ich habe mir das Projekt mal angeschaut und Frage mich, und Dich, nach dem Sinn dieses Versuchs das aus dem Base64 zu dekodieren. Der Quelltext von dem Modul ist doch Bestandteil des Projekts, warum versuchst Du den aus dem kompilierten Modul zu bekommen, statt einfach die Quelltextdatei zu verwenden‽

https://github.com/CensoredUsername/unr ... compile.py

Re: Unpickle einer Datenstruktur

Verfasst: Samstag 5. Oktober 2024, 19:55
von DeaD_EyE
Mutmaßung: Er versucht ein Spiel zu dekompilieren, von dem er keine Nutzungslizenz erworben hat und ausschließlich der kompilierte Bytecode vorhanden ist. Ich bewerte das aber nicht.

Was ich nicht wusste, dass man sogar Moule mit Pickle serialisieren kann. Ich vermute mal, dass es bei Renpy ein Teil der Runtime ist, um weiteren Code zu laden.

Re: Unpickle einer Datenstruktur

Verfasst: Samstag 5. Oktober 2024, 21:29
von __blackjack__
@DeaD_EyE: Nee was da gepickled ist, ist Teil des Projekts selbst. Der Quelltext von dem Modul liegt da ja vor auf Github und auch der Code der das dann importiert, pickled, Base64 kodiert, und den Quelltext produziert der in dem Download vorhanden ist, den der OP da versucht irgendwie lesbar zu speichern.

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 11. Oktober 2024, 09:03
von TRM
Hallo.

Vielen Dank an euch.

Ich hatte versucht eine Struktur zu entschlüsseln, um eine Übersetzung eines Spiels zu erstellen. Um aber an die Strings zu gelangen, müsste ich das Spiel zurückportieren.
Leider klappte es nicht so, wie gewünscht.

Bei den Untersuchungen des Codes fiel mir schon am Anfang der verschlüsselte Code auf und ich wurde neugierig, ob bzw. was das Script versucht zu verschleiern.

Es war nichts unseriöses an meiner Intention, das kann ich versprechen :-)

LG M

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 11. Oktober 2024, 09:17
von DeaD_EyE
Es war nichts unseriöses an meiner Intention, das kann ich versprechen :-)
Im Gegenteil. Wenn man Programme untersucht, dessen Quellcode man nicht hat, lernt man dadurch sehr viel.
Viele, die früher Spiele gecrackt haben, werden heutzutage vorzüglich bezahlt und sind in der IT-Security unterwegs und untersuchen Malware.

Re: Unpickle einer Datenstruktur

Verfasst: Sonntag 13. Oktober 2024, 07:53
von TRM
Eine letzte Nachfrage habe ich aber bitte noch.

Was mir noch aufgefallen ist: Zurückcompilierte Dateien hatten am Ende der Datei immer eine Signatur, in der auf unpy github des Entwicklers verwiesen wurde. Das steht aber in keiner Bibliothek und ebenfalls nicht im Quelltext als String. Daher kam ich eben auf die Idee, dass im verschlüsselten Code noch Logik und Code stecken könnte.

Woher nun aber der/die Strings kommen, ist mir weiterhin ein Rätsel.

LG M

Re: Unpickle einer Datenstruktur

Verfasst: Sonntag 13. Oktober 2024, 07:56
von noisefloor
Was meinst du mit "zurückkompilieren"? Bzw. welchen Code hast du von wo nach wo zurückkompiliert?

Gruß, noisefloor

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 18. Oktober 2024, 08:04
von TRM
noisefloor hat geschrieben: Sonntag 13. Oktober 2024, 07:56 Was meinst du mit "zurückkompilieren"? Bzw. welchen Code hast du von wo nach wo zurückkompiliert?

Gruß, noisefloor
unrpyc.py decompiliert Dateien *.rpcy (quote]Unrpyc is a tool to decompile Ren'Py (http://www.renpy.org) compiled .rpyc script files. -> https://github.com/CensoredUsername/unrpyc[/quote]

Damit erhalte ich die Struktur und kann mir ein langfile erstellen und übersetzen.

LG M.

Re: Unpickle einer Datenstruktur

Verfasst: Freitag 18. Oktober 2024, 08:52
von sparrow
Aber tut dann nicht schon das Programm genau das, was du möchtest?