Descompila archivos de bytecode Python (.pyc) de vuelta a código fuente Python legible. Sube archivos .pyc y obtén el código Python original.
Características
- Descompilación inteligente de bytecode: Realiza automáticamente ingeniería inversa de archivos bytecode Python .pyc a código fuente legible con reconstrucción AST inteligente y análisis de flujo de control para restaurar con precisión la lógica del código.
- Soporte multiversión de Python: Compatible con Python 2.7 a 3.13+, detecta automáticamente el formato de bytecode y aplica algoritmos de descompilación específicos de versión para resultados precisos.
- Metadatos de archivo detallados: Extrae y muestra información completa del archivo, incluyendo versión de Python, número mágico, marca de tiempo de compilación y estructura de bytecode para análisis profundo.
- Exportación y compartición convenientes: Copie con un clic el código fuente descompilado al portapapeles o descárguelo como archivo .py para uso directo en sus proyectos y flujos de trabajo de desarrollo.
Guía de uso
- Paso 1: Haz clic en 'Cargar archivo' para seleccionar un archivo .pyc desde tu computadora.
- Paso 2: La herramienta descompilará automáticamente el bytecode y mostrará el código fuente Python.
- Paso 3: Copia o descarga el código Python descompilado para tu análisis.
Detalles técnicos
Proceso de descompilación de Python y reconstrucción de bytecode
Descompilar archivos PYC a código fuente Python implica ingeniería inversa de bytecode de vuelta a sintaxis Python de alto nivel. El proceso incluye: análisis de archivo PYC, decodificación de instrucciones de bytecode, reconstrucción de gráfico de flujo de control, generación de Árbol de Sintaxis Abstracta (AST). Descompiladores como uncompyle6, decompyle3, pycdc implementan coincidencia de patrones: reconocimiento de secuencias de bytecode corr
Algoritmos de descompilación y reconstrucción de AST
Los descompiladores modernos usan algoritmos sofisticados: análisis de flujo de control, análisis de flujo de datos, reconstrucción basada en patrones. La generación de AST implica: creación de jerarquía de nodos, preservación de semántica mientras mejora legibilidad, manejo de casos especiales, resolución de ambigüedades. Las características avanzadas incluyen: propagación de constantes, nomenclatura de variables, detección de cadenas de formato.
Consideraciones legales y aplicaciones prácticas
La descompilación PYC sirve propósitos legítimos pero involucra consideraciones legales y éticas. Casos de uso válidos incluyen: recuperación de código legacy, análisis de seguridad, propósitos educativos, depuración. Sin embargo, respete propiedad intelectual: ingeniería inversa puede violar licencias de software, algoritmos propietarios permanecen protegidos, descompilación de software comercial a menudo prohibida.
Preguntas frecuentes
- ¿Qué es un archivo .pyc y cómo se crea?
- Los archivos .pyc son archivos de bytecode Python creados cuando Python importa un módulo. Python compila archivos fuente .py a bytecode (.pyc) para una ejecución más rápida en ejecuciones posteriores. El archivo .pyc contiene: número mágico (identificando la versión Python), timestamp o hash (para validación de cache), y objetos code marshalled (instrucciones de bytecode). Estos archivos se almacenan en directorios __pycache__ y permiten a Python saltar el paso de compilación en la reimportación, mejorando el tiempo de inicio.
- ¿Puede el código descompilado ser idéntico a la fuente original?
- Non, el código descompilado Non puede ser 100% idéntico a la fuente original. Durante la compilación, Python pierde: comentarios y docstrings (a menos que estén en objetos code), nombres de variables originales en algunos contextos, formateo y espacios en blanco, y ciertas construcciones de alto nivel que compilan a bytecode similar. Sin embargo, los descompiladores pueden reconstruir código funcionalmente equivalente que realiza las mismas operaciones. La precisión depende de la versión Python, nivel de optimización y complejidad del código.
- ¿Qué versiones de Python son soportadas para descompilación?
- La mayoría de los descompiladores modernos soportan versiones Python de 2.7 a 3.11+. Cada versión Python usa formatos de bytecode diferentes con números mágicos y opcodes únicos. La herramienta intenta detectar la versión Python del encabezado del archivo .pyc y usar algoritmos de descompilación apropiados. Sin embargo, versiones Python muy nuevas (3.12+) o muy antiguas (pre-2.6) pueden tener soporte limitado. Para mejores resultados, asegúrese de que la versión del descompilador coincida o soporte su versión Python objetivo.
- ¿Es legal descompilar archivos .pyc?
- La legalidad depende del contexto y jurisdicción. Los usos legales incluyen: recuperar su propio código fuente perdido, análisis de seguridad de software que posee o tiene permiso para auditar, investigación educativa de internals Python, y depuración de aplicaciones donde la fuente Non está disponible. Sin embargo, descompilar software comercial, aplicaciones propietarias o código protegido por derechos de autor sin permiso puede violar acuerdos de licencia, leyes de propiedad intelectual o términos de servicio. Siempre respete las licencias de software y use la descompilación solo para propósitos legítimos y autorizados.
Documentación relacionada
- Python.org - Internals del Bytecode - Documentación oficial del bytecode Python e internals del compilador
- PEP 552 - Pycs determinísticos - Propuesta de mejora de Python para el formato de archivo .pyc
- uncompyle6 - Descompilador Python - Herramienta y biblioteca populares de descompilación de bytecode Python
- Módulo AST Python - Documentación de árboles de sintaxis abstracta en Python
- Objetos Code Python - Comprender los internals de los objetos code Python