Risposte:
Uncompyle6 funziona con Python 3.xe 2.7 - opzione consigliata in quanto è lo strumento più recente, con l'obiettivo di unificare le forcelle precedenti e concentrarsi sui test automatici delle unità. La pagina GitHub contiene maggiori dettagli.
Il vecchio Uncompyle2 supporta solo Python 2.7. Questo ha funzionato bene per me qualche tempo fa per decompilare il bytecode .pyc in .py, mentre unpyclib si è bloccato con un'eccezione.
Con tutti questi strumenti, puoi recuperare il tuo codice includendo i nomi delle variabili, ma senza i commenti.
Sì, puoi ottenerlo con unpyclib
quello che puoi trovare su Pypi .
$ pip install unpyclib
Quindi puoi decompilare il tuo file .pyc
$ python -m unpyclib.application -Dq path/to/file.pyc
print __copyright
- perché usa la versione Python 2.7 print
senza parentesi?
unpyclib
La prima e ultima versione di @DavidChing è stata nel 2009 , si può dire che è solo un programma Python 2.
Puoi provare Easy Python Decompiler . Si basa su Decompyle ++ e Uncompyle2. Supporta la decompilazione di Python versioni 1.0-3.3
Nota: sono l'autore dello strumento sopra.
Decompyle ++ (pycdc) è stato l'unico che ha funzionato per me: https://github.com/zrax/pycdc
è stato suggerito in Decompile Python 2.7 .pyc
Sì .
Uso decompilare uncompyle6 (supporto anche l'ultimo Python 3.8.0):
uncompyle6 utils.cpython-38.pyc > utils.py
e l'origine python e il confronto python decompilato si presentano così:
quindi puoi vedere, quasi lo stesso, l'effetto di decompilazione è MOLTO BUONO .
Sì, è possibile.
Esiste un perfetto decompilatore open-source Python (.PYC), chiamato Decompyle ++ https://github.com/zrax/pycdc/
Decompyle ++ mira a tradurre nuovamente il codice byte Python compilato in codice sorgente Python valido e leggibile dall'uomo. Mentre altri progetti hanno raggiunto questo obiettivo con vari successi, Decompyle ++ è unico in quanto cerca di supportare il codice byte da qualsiasi versione di Python.
Installa usando pip install pycompyle6
pycompyle6 nomefile.pyc