J'ai effectué des recherches de haut en bas, mais je ne trouve pas de décompilateur compatible avec Python 2.7 .pyc. Est-ce que quelqu'un connaît celui qui fonctionnera pour Python 2.7? Merci
Réponses
Trop de publicités?Dans le cas où quelqu'un est toujours de la difficulté avec cela, comme je l'ai été toute la matinée d'aujourd'hui, j'ai trouvé une solution qui fonctionne pour moi:
Instructions d'Installation:
git clone https://github.com/gstarnberger/uncompyle.git
cd uncompyle/
sudo ./setup.py install
Une fois le programme installé (note: il sera installé sur votre système à l'échelle accessibles les paquets Python, de sorte qu'il devrait être dans votre $PATH
), vous pouvez récupérer vos fichiers Python comme suit:
uncompyler.py thank_goodness_this_still_exists.pyc > recovered_file.py
Le decompiler ajoute un peu de bruit le plus souvent sous forme de commentaires, mais je l'ai trouvé étonnamment propre et fidèle à mon code d'origine. Vous devrez retirer un peu de la ligne de texte commençant par +++ près de la fin du fichier récupéré pour être en mesure d'exécuter votre code.
Decompyle ++ (pycdc) semble fonctionner pour différentes versions de python: https://github.com/zrax/pycdc
Par exemple:
git clone https://github.com/zrax/pycdc
cd pycdc
make
./bin/pycdc Example.pyc > Example.py
Cela sonne comme il fonctionne: http://code.google.com/p/unpyc/
Question 8, dit-il prend en charge 2.7: http://code.google.com/p/unpyc/updates/list
Mise à JOUR (2013-09-03) - Comme indiqué dans les commentaires et dans d'autres réponses, vous devriez regarder https://github.com/wibiti/uncompyle2 ou https://github.com/gstarnberger/uncompyle au lieu de unpyc.
Ned Batchelder a posté un petit script qui va unmarshal un .pyc fichier et de désassembler le code des objets au sein, de sorte que vous serez en mesure de voir le bytecode Python.
Ça ressemble à de nouvelles versions de Python, vous aurez besoin de commenter les lignes qui définissent modtime
et l'imprimer (mais ne pas commenter la ligne qui définit moddate
).
Tournant le dos en source Python serait un peu plus difficile, bien que théoriquement possible. Je suppose que tous ces programmes de travail pour les anciennes versions de Python le faire.