43 votes

Décompiler Python 2.7 .pyc

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

84voto

Milosz Points 977

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:

Uncompyle

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.

26voto

Erik Points 181

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
 

20voto

Mike Driscoll Points 18662

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.

10voto

Extreme Coders Points 1640

Voici un excellent outil pour décompiler les fichiers pyc.

Il a été codé par moi et supporte python 1.0 - 3.3

Son basé sur uncompyle2 et decompyle ++

http://sourceforge.net/projects/easypythondecompiler/

3voto

Michael Hoffman Points 8557

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X