Réponses:
Uncompyle6 fonctionne pour Python 3.x et 2.7 - option recommandée car c'est l'outil le plus récent, visant à unifier les fourches précédentes et se concentrant sur les tests unitaires automatisés. La page GitHub contient plus de détails.
L'ancien Uncompyle2 ne prend en charge que Python 2.7. Cela a bien fonctionné pour moi il y a quelque temps pour décompiler le bytecode .pyc en .py, alors que unpyclib s'est écrasé avec une exception.
Avec tous ces outils, vous récupérez votre code avec les noms de variables, mais sans les commentaires.
Oui, vous pouvez l'obtenir avec unpyclib
qui peut être trouvé sur pypi .
$ pip install unpyclib
Ensuite, vous pouvez décompiler votre fichier .pyc
$ python -m unpyclib.application -Dq path/to/file.pyc
print __copyright
- pourquoi utilise-t-il la version Python 2.7 de print
sans parenthèses?
Vous pouvez essayer Easy Python Decompiler . Il est basé sur Decompyle ++ et Uncompyle2. Il prend en charge la décompilation des versions 1.0-3.3 de python
Remarque: je suis l'auteur de l'outil ci-dessus.
Decompyle ++ (pycdc) était le seul qui a fonctionné pour moi: https://github.com/zrax/pycdc
a été suggéré dans Decompile Python 2.7 .pyc
Oui .
J'utilise uncompyle6 decompile (supporte même le dernier Python 3.8.0):
uncompyle6 utils.cpython-38.pyc > utils.py
et le python d'origine et le python décompilé comparant ressemblent à ceci:
donc vous pouvez voir, presque le même effet de décompilation est TRÈS BON .
Oui c'est possible.
Il existe un décompilateur Python (.PYC) open-source parfait, appelé Decompyle ++ https://github.com/zrax/pycdc/
Decompyle ++ vise à traduire le code d'octet Python compilé en code source Python valide et lisible par l'homme. Alors que d'autres projets ont atteint cet objectif avec un succès varié, Decompyle ++ est unique en ce sens qu'il cherche à prendre en charge le byte-code de n'importe quelle version de Python.
Installer à l'aide de pip install pycompyle6
pycompyle6 nomfichier.pyc