python - pyo - facebookhacks pyc
Decompile Python 2.7.pyc (5)
He buscado arriba y abajo, pero no puedo encontrar un compilador que funcione para Python 2.7 .pyc. ¿Alguien sabe de uno que funcione para Python 2.7? Gracias
Aquí hay una gran herramienta para descompilar archivos pyc.
Fue codificado por mí y admite python 1.0 - 3.3
Está basado en uncompyle2 y decompyle ++
Decompyle ++ (pycdc) parece funcionar para una variedad de versiones de Python: https://github.com/zrax/pycdc
Por ejemplo:
git clone https://github.com/zrax/pycdc
cd pycdc
make
./bin/pycdc Example.pyc > Example.py
En caso de que alguien todavía esté luchando con esto, como lo estuve toda la mañana de hoy, he encontrado una solución que funciona para mí:
https://github.com/gstarnberger/uncompyle
Instrucciones de instalación:
git clone https://github.com/gstarnberger/uncompyle.git
cd uncompyle/
sudo ./setup.py install
Una vez que el programa está instalado (nota: se instalará en los paquetes de Python accesibles a todo el sistema, por lo que debe estar en su $PATH
), puede recuperar sus archivos de Python de la siguiente manera:
uncompyler.py thank_goodness_this_still_exists.pyc > recovered_file.py
El descompilador agrega algo de ruido principalmente en forma de comentarios, sin embargo, he encontrado que es sorprendentemente limpio y fiel a mi código original. Deberá eliminar una pequeña línea de texto que comience con +++ cerca del final del archivo recuperado para poder ejecutar su código.
Ned Batchelder ha publicado un breve script que desarticulará un archivo .pyc y desensamblará cualquier objeto de código dentro, por lo que podrás ver el código de byte de Python. Parece que con las versiones más nuevas de Python, tendrá que comentar las líneas que establecen modtime
e imprimirlo (pero no comente la línea que establece moddate
).
Volverlo a Python fuente sería algo más difícil, aunque teóricamente posible. Supongo que todos estos programas que funcionan para versiones anteriores de Python hacen eso.
Parece que funciona: http://code.google.com/p/unpyc/
El problema 8 dice que es compatible con 2.7: http://code.google.com/p/unpyc/updates/list
ACTUALIZACIÓN (2013-09-03): como se indicó en los comentarios y en otras respuestas, debe consultar https://github.com/wibiti/uncompyle2 o https://github.com/gstarnberger/uncompyle lugar de unpyc.