
Una interfaz de escritorio de Qt Widgets para explorar bytecode de Python con pycdc/pycdas, inspeccionar descompilación nativa y utilizar respaldo de IA para objetos de código no soportados.
Una interfaz gráfica de escritorio con Qt Widgets para explorar bytecode de Python usando pycdc / pycdas, inspeccionar resultados de descompilación nativa, importar la salida de Pyarmor oneshot y reintentar objetos de código no soportados con respaldo de IA.
La aplicación es compatible con entornos de escritorio Windows y Linux.


.pyc / .pyo directamenteCombinadoNativoIACtrl+RLa aplicación no envía todo el .pyc por defecto.
Construye un prompt a partir del objeto de código seleccionado actualmente, incluyendo:
Eso mantiene la reconstrucción de respaldo centrada en el nodo seleccionado en lugar de todo el archivo.
La aplicación actualmente prefiere ejecutables locales junto al binario de la aplicación y buscará:
pycdc.exepycdcpycdas.exepycdasen el mismo directorio que el binario de pycdc-studio.
Puedes sobrescribirlos con variables de entorno:
PYCDC_STUDIO_PYCDCPYCDC_STUDIO_PYCDASLa aplicación puede importar proyectos protegidos con Pyarmor delegando en
Lil-House/Pyarmor-Static-Unpack-1shot.
Flujo de integración actual:
oneshot/shot.py en un directorio de proyecto Pyarmor seleccionadopyarmor-1shot genere .1shot.das y .1shot.cdc.pySe espera que los paquetes de lanzamiento incluyan automáticamente la cadena de herramientas oneshot de Pyarmor y las dependencias de paquetes Python necesarias.
Para desarrollo local, el código actual primero busca archivos incluidos junto al paquete de la aplicación, y también admite un clon local en:
external/Pyarmor-Static-Unpack-1shot/oneshot/shot.pyy espera que pyarmor-1shot / pyarmor-1shot.exe estén disponibles en el mismo directorio que shot.py.
También necesitas un entorno Python que pueda ejecutar shot.py, incluyendo pycryptodome.
Si tu estructura es diferente, aún puedes sobrescribirla con variables de entorno:
PYCDC_STUDIO_PYARMOR_PYTHONPYCDC_STUDIO_PYARMOR_SHOTPYCDC_STUDIO_PYARMOR_PYTHONPATHPYCDC_STUDIO_PYARMOR_OUTPUT_ROOTEjemplo:
git clone https://github.com/Lil-House/Pyarmor-Static-Unpack-1shot external/Pyarmor-Static-Unpack-1shot
cmake -S external/Pyarmor-Static-Unpack-1shot/pycdc -B external/Pyarmor-Static-Unpack-1shot/build
cmake --build external/Pyarmor-Static-Unpack-1shot/build --config Release
cmake --install external/Pyarmor-Static-Unpack-1shot/build --config Release
python -m pip install pycryptodome
pycdc-studioArchivo -> Importar proyecto Pyarmor...pyarmor_runtime.1shot.* generados se importen a la zona de trabajoNotas:
PYCDC_STUDIO_PYARMOR_OUTPUT_ROOT esté configurado.Antes de usar el respaldo de IA, abre Configuración y configura al menos:
URL baseClave APIModeloEl cliente actual espera un endpoint de API compatible con OpenAI.
El diálogo de configuración almacena la configuración del proveedor con QSettings y recurre a variables de entorno cuando un campo está vacío.
Variables de entorno compatibles:
PYCDC_STUDIO_AI_BASE_URLPYCDC_STUDIO_AI_API_KEYPYCDC_STUDIO_AI_MODELPYCDC_STUDIO_AI_SYSTEM_PROMPTRequisitos:
Ejemplo:
cmake -S . -B build
cmake --build build
pycdc-studio.pyc / .pyo, o arrastra una carpeta a la ventanaArchivo -> Importar proyecto Pyarmor... para un proyecto protegido con PyarmorConfiguración desde el menú superior y configura tu modelo de IA si deseas usar el respaldo de IAReintentar con IA en el nodo seleccionado si la descompilación nativa está incompleta o es incorrectaCasos de prueba más largos están incluidos en test/:
workflow_orchestrator.pyasync_batch_runner.pyplugin_config_resolver.pyEl repositorio rastrea solo las muestras fuente.
Para generar archivos .pyc locales para pruebas de arrastrar y soltar:
python test/compile_test_samples.py
Ese script escribe el bytecode compilado en test/__pycache__/.
Este proyecto aún es experimental.
La vista Combinado actual es un documento mixto honesto:
Todavía no es un fusionador de código fuente en línea completo.
Este proyecto se integra con pycdc / pycdas, cuyo proyecto upstream está licenciado bajo GPL-3.0.
pycdc: GPL-3.0pycdc / pycdas deben incluir el aviso GPL-3.0pycdc upstream incluido en THIRD_PARTY_NOTICES.txtConsulta el proyecto upstream para los detalles completos de la licencia: