
Desensamblador y descompilador de bytecode de C++ y Python
Un desensamblador/descompilador de bytecode de Python
Decompyle++ tiene como objetivo traducir el bytecode compilado de Python de nuevo a código fuente de Python válido y legible por humanos. Mientras que otros proyectos han logrado esto con éxito variable, Decompyle++ es único en que busca admitir bytecode de cualquier versión de Python.
Decompyle++ incluye tanto un desensamblador de bytecode (pycdas) como un descompilador (pycdc).
Como su nombre indica, Decompyle++ está escrito en C++. Si deseas contribuir, por favor haz un fork de nuestro repositorio en GitHub en https://github.com/zrax/pycdc
Genera un proyecto o makefile con CMake (Consulta la documentación de CMake para más detalles)
Las siguientes opciones se pueden pasar a CMake para controlar las características de depuración:
| Opción | Descripción |
|---|
-DCMAKE_BUILD_TYPE=Debug | Produce símbolos de depuración |
-DENABLE_BLOCK_DEBUG=ON | Habilita la salida de depuración de bloques |
-DENABLE_STACK_DEBUG=ON | Habilita la salida de depuración de pila |
Compila el proyecto o makefile generado
makemake check JOBS=4 (opcional
FILTER=xxxx para ejecutar solo ciertas pruebas)Para ejecutar pycdas, el desensamblador PYC:
./pycdas [RUTA AL ARCHIVO PYC]
El desensamblado del bytecode se imprime en stdout.
Para ejecutar pycdc, el descompilador PYC:
./pycdc [RUTA AL ARCHIVO PYC]
El código fuente de Python descompilado se imprime en stdout.
Cualquier error se imprime en stderr.
Objetos de código serializados (marshalled):
Ambas herramientas admiten objetos de código serializados de Python, como salida de marshal.dumps(compile(...)).
Para usar esta funcionalidad, especifica -c -v <version> en la línea de comandos; la versión debe especificarse ya que los objetos en sí mismos no contienen metadatos de versión.
Decompyle++ es obra de Michael Hansen y Darryl Pogue.
Contribuciones adicionales de:
Está publicado bajo los términos de la GNU General Public License, versión 3; Consulta el archivo LICENSE para más detalles.