Hallo an alle.
ich spiele gerade ein wenig mit Python rum und habe nun ein Problem bei dem ich nicht weiterkomme.
Ich würde gerne ein Programm das auf Python basiert verändern, das ist eigentlic gar nicht so ein problem, denn es geht ganz einfach per execfile() in einer datei und dann eigenen thread machen etc.
Damit ich nun die python Funktionen des Programms aber auch nutzen kann würde ich gerne eine datei die in bytecode ist, zu normalepython sourcecode decompilieren.
Ich habe es bisher leider nur geschafft, die Baumstruktur auszulesen, der eigentliche inhalt der dateien blieb mir bisher noch vorenthalten.
Wenn also jemand weiss wie ich diese Datei "entpacken" oder dekompilieren kann wäre ich demjenigen SEHR verbunden!
http://badmaster.ba.ohost.de/compiled.rar
Danke VIELMALS im voraus!
Gruss BM
ps: man möge mir vergeben, falls dieser vorgang völlig simpel ist und ich nur ein zwei FAQs hätte lesen müssen... ich habe nichts dazu gefunden
Bytecode dekompilieren
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Werd doch mal etwas konkreter, welches Programm ist es? Warum hast du die Sourcen nicht mehr?
Normalerweise ändert man bestehende Module durch erben und überscheiben von Methoden und nicht durch fileexec...
Normalerweise ändert man bestehende Module durch erben und überscheiben von Methoden und nicht durch fileexec...
Zuletzt geändert von jens am Freitag 3. März 2006, 12:55, insgesamt 1-mal geändert.
es handelt sich um eve-onlinejens hat geschrieben:Werd doch mal etwas konkreter, welches Programm ist es? Warum hast du die Sourcen nicht mehr?
Normalerweise ändert man bestehende Module durch erben und überscheiben von Methoden und nicht durch fileexec...
ein spiel was auf (stackless-)python zurückgreift (alles bis auf die grafik engine ist python).
edit: oh und apropo decompyle, das will leider nicht so ganz bei mir.
installation ergibt
"error: Python was built with version 7.1 of Visual Studio, and extensions need to be built with the same version of the compiler, but it isn't installed."
wenn jemand die binaries für winxp hat oder es mit der geposteten datei versuchen würde, das wäre sehr nett
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ein Link zum Thema decompile: http://www.python-forum.de/viewtopic.php?t=4432
http://www.crazy-compilers.com/decompyle/
http://www.crazy-compilers.com/decompyle/
vielen Dank für deine Antworten!jens hat geschrieben:Ein Link zum Thema decompile: http://www.python-forum.de/viewtopic.php?t=4432
http://www.crazy-compilers.com/decompyle/
nun muss ich nur noch jemanden finden der mehr glück hat bei der installation von "decompyle", denn 10EUR pro 5KB würde für eine datei die entzippt 7.8MB ist eher teuer werden :S
also ich habe nun jemanden gefunden der für mich auf seiner debian Installation versucht hat die datei compiled.code zu decompilen, jedoch ohne Erfolg...
irre ich mich vielleicht und die Datei ist gar nicht üblicher python bytecode?
Danke im Voraus!
irre ich mich vielleicht und die Datei ist gar nicht üblicher python bytecode?
Danke im Voraus!
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Eve Online arbeitet mit Stackless Python (und eben nicht CPython), es ist also davon auszugehen dass der Byte-Code Stackless Byte-Code ist, und soweit ich weiß sind die beiden VMs nicht binär-kompatibel.
--- Heiko.
danke, das wusste ich nicht...modelnine hat geschrieben:Eve Online arbeitet mit Stackless Python (und eben nicht CPython), es ist also davon auszugehen dass der Byte-Code Stackless Byte-Code ist, und soweit ich weiß sind die beiden VMs nicht binär-kompatibel.
bisher scheitere ich, und die Person die mir mit seiner debian installation helfen wollte, aber sogar schon an der insstallation von decompyle, das ist natürlich OT...
also das einzige was ich noch sagen kann ist, dass es ganz sicher irgendwie ( ) geht die datei zu dekompilieren, nur leider sind nicht alle so hilfsbereit wie ihr...
ist es möglich, dass die datei compiled.code gar nicht bytecode ist sondern einfach nur mit marshal serialisiert wurde, oder beides? ich habe versucht die datei mit marshal.dumps und marshal.dump in eine datei zu schreiben, aber es gibt weiterhin unlesbaren "code" ...
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Vielleicht installierst du dir mal http://www.stackless.com Python und testets damit mal, ob du mit dem Bytecode was machen kannst...
Das ist vielleicht die richtige Richtung: http://www.stackless.com/wiki/Pickling
Das ist vielleicht die richtige Richtung: http://www.stackless.com/wiki/Pickling
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Wenn sie mit marshall serialisiert wurde ist es Byte-Code. Sprich: Du mußt ihn trotzdem noch dekompilieren. Da aber Eve-Online einen abgewandelten Stackless-Interpreter benutzt (wovon ich jetzt mal direkt ausgehen würde) kann es gut sein dass es allgemein nicht geht den Byte-Code zu dekompilieren, außer Du kommst an die Quellen des Eve-Online-Python-Interpreters und kannst den zerlegen.ist es möglich, dass die datei compiled.code gar nicht bytecode ist sondern einfach nur mit marshal serialisiert wurde, oder beides? ich habe versucht die datei mit marshal.dumps und marshal.dump in eine datei zu schreiben, aber es gibt weiterhin unlesbaren "code" ...
Ich würde Dich ja jetzt glatt ans Stackless-Projekt verweisen (http://www.stackless.com). Bei denen solltest Du mal nachfragen können wie es denn jetzt genau mit Eve-Online aussieht; soweit ich weiß ist einer der Stackless-Menschen bei der Firma die Eve-Online macht angestellt.
--- Heiko.