Décompilez les fichiers de bytecode Python (.pyc) en code source Python lisible. Téléchargez des fichiers .pyc et obtenez le code Python original.
Fonctionnalités
- Décompilation intelligente du bytecode: Effectue automatiquement la rétro-ingénierie des fichiers bytecode Python .pyc en code source lisible avec reconstruction AST intelligente et analyse de flux de contrôle pour restaurer précisément la logique du code.
- Support multi-version Python: Compatible avec Python 2.7 à 3.13+, détecte automatiquement le format du bytecode et applique des algorithmes de décompilation spécifiques à la version pour des résultats précis.
- Métadonnées de fichier détaillées: Extrait et affiche les informations complètes du fichier, incluant la version Python, le numéro magique, l'horodatage de compilation et la structure du bytecode pour une analyse approfondie.
- Exportation et partage pratiques: Copiez en un clic le code source décompilé dans le presse-papiers ou téléchargez-le en fichier .py pour une utilisation directe dans vos projets et flux de travail de développement.
Guide d'utilisation
- Étape 1: Cliquez sur 'Charger le fichier' pour sélectionner un fichier .pyc depuis votre ordinateur.
- Étape 2: L'outil décompilera automatiquement le bytecode et affichera le code source Python.
- Étape 3: Copiez ou téléchargez le code Python décompilé pour votre analyse.
Détails techniques
Processus de décompilation Python et reconstruction de bytecode
Décompiler fichiers PYC en code source Python implique ingénierie inverse de bytecode vers syntaxe Python haut niveau. Le processus inclut : analyse de fichier PYC, décodage d'instructions de bytecode, reconstruction de graphe de flux de contrôle, génération d'Arbre de Syntaxe Abstraite (AST). Les décompilateurs comme uncompyle6, decompyle3, pycdc implémentent correspondance de motifs : reconnaissance de séquences de bytecode correspondant à cons
Algorithmes de décompilation et reconstruction d'AST
Les décompilateurs modernes utilisent algorithmes sophistiqués : analyse de flux de contrôle, analyse de flux de données, reconstruction basée sur motifs. La génération d'AST implique : création de hiérarchie de nœuds, préservation de sémantique tout en améliorant lisibilité, gestion de cas spéciaux, résolution d'ambiguïtés. Les fonctionnalités avancées incluent : propagation de constantes, nommage de variables, détection de chaînes de format.
Considérations légales et applications pratiques
La décompilation PYC sert objectifs légitimes mais implique considérations légales et éthiques. Cas d'usage valides incluent : récupération de code legacy, analyse de sécurité, objectifs éducatifs, débogage. Cependant, respectez propriété intellectuelle : ingénierie inverse peut violer licences de logiciels, algorithmes propriétaires restent protégés, décompilation de logiciels commerciaux souvent interdite.
Questions fréquentes
- Qu'est-ce qu'un fichier .pyc et comment est-il créé ?
- Les fichiers .pyc sont des fichiers de bytecode Python créés lorsque Python importe un module. Python compile les fichiers source .py en bytecode (.pyc) pour une exécution plus rapide lors des exécutions ultérieures. Le fichier .pyc contient : un nombre magique (identifiant la version Python), un horodatage ou hash (pour la validation du cache) et des objets code marshallés (instructions bytecode). Ces fichiers sont stockés dans les répertoires __pycache__ et permettent à Python de sauter l'étape de compilation lors de la réimportation, améliorant le temps de démarrage.
- Le code décompilé peut-il être identique à la source originale ?
- Non, le code décompilé ne peut pas être identique à 100% à la source originale. Pendant la compilation, Python perd : les commentaires et docstrings (sauf s'ils sont dans les objets code), les noms de variables originaux dans certains contextes, le formatage et les espaces blancs, et certaines constructions de haut niveau qui compilent en bytecode similaire. Cependant, les décompilateurs peuvent reconstruire du code fonctionnellement équivalent qui effectue les mêmes opérations. La précision dépend de la version Python, du niveau d'optimisation et de la complexité du code.
- Quelles versions Python sont Supportées pour la décompilation ?
- La plupart des décompilateurs modernes supportent les versions Python de 2.7 à 3.11+. Chaque version Python utilise des formats de bytecode différents avec des nombres magiques et opcodes uniques. L'outil tente de détecter la version Python à partir de l'en-tête du fichier .pyc et d'utiliser les algorithmes de décompilation appropriés. Cependant, les versions Python très récentes (3.12+) ou très anciennes (pré-2.6) peuvent avoir un support limité. Pour de meilleurs résultats, assurez-vous que la version du décompilateur correspond ou supporte votre version Python cible.
- Est-il légal de décompiler des fichiers .pyc ?
- La légalité dépend du contexte et de la juridiction. Les utilisations légales incluent : récupérer votre propre code source perdu, analyse de sécurité de logiciels que vous possédez ou avez la permission d'auditer, recherche éducative sur les internals Python, et débogage d'applications où la source n'est pas disponible. Cependant, décompiler des logiciels commerciaux, applications propriétaires ou code protégé par le droit d'auteur sans permission peut violer les accords de licence, les lois sur la propriété intellectuelle ou les conditions de service. Respectez toujours les licences logicielles et utilisez la décompilation uniquement à des fins légitimes et autorisées.
Documentation connexe
- Python.org - Internals du Bytecode - Documentation officielle du bytecode Python et des internals du compilateur
- PEP 552 - Pycs déterministes - Proposition d'amélioration Python pour le format de fichier .pyc
- uncompyle6 - Décompilateur Python - Outil et bibliothèque populaires de décompilation de bytecode Python
- Module AST Python - Documentation des arbres de syntaxe abstraite en Python
- Objets Code Python - Comprendre les internals des objets code Python