uncompyle6 pyo open online descompilar descompilador decompile decompilar python decompiling

pyo - Explorando y descompilando el bytecode de python



python open pyc file (6)

Además de lo que DevC escribió:

  1. Uncompyle2 funciona con Python 2.7

  2. con Uncompyle2, también puede descompilar desde la línea de comandos:

    $ uncompyle2 compiled.pyc >> source.uncompyle2.py

  3. para instalar Uncompyle2, haz

    $ git clone https://github.com/wibiti/uncompyle2

    $ cd uncompyle2

    $ sudo ./setup.py install

Digamos que tengo:

>>> def test(a): >>> print a

Ahora, quiero explorar cómo se ve la prueba en su forma compilada.

>>> test.func_code.co_code ''|/x00/x00GHd/x00/x00S''

Puedo obtener la forma desensamblada usando el módulo dis :

>>> import dis >>> dis.dis(test) 2 0 LOAD_FAST 0 (a) 3 PRINT_ITEM 4 PRINT_NEWLINE 5 LOAD_CONST 0 (None) 8 RETURN_VALUE

¿Existe un decompilador de código abierto y mantenido que podría usar para convertir el código de bytes nuevamente en un código de Python legible?

actualización: gracias por sugerir descompilar, pero está desactualizado (python2.3) y ya nadie lo mantiene. ¿Hay algo para python2.5 o posterior?


Ahora también hay uncompyle6 que está escrito en Python y pycdc que está escrito en C ++.

Ambos manejan varias versiones del código de bytes de Python, incluidas las versiones de Python 2 y las versiones de Python 3.


Obtener uncompyle2 de github! :)


Uncompyle2 me funcionó con Python 2.7.

https://github.com/wibiti/uncompyle2

Rápido cómo usar uncompyle2, instálelo y luego

>>>import uncompyle2 >>> with open("decompiled.py","wb") as f: ... uncompyle2.uncompyle_file("compiled.pyc",f)

Se generará el código fuente de nuevo en decompile.py


decompyle

Decompyle es un desensamblador y descompilador de Python que convierte el código de bytes de Python (.pyc o .pyo) de nuevo en una fuente de Python equivalente. La verificación del código producido (re-compilado) también está disponible.