
Uma interface de desktop Qt Widgets para explorar bytecode Python com pycdc/pycdas, inspecionar descompilação nativa e usar fallback de IA para objetos de código não suportados.
Uma interface de desktop Qt Widgets para explorar bytecode Python com pycdc / pycdas, inspecionar resultados nativos de descompilação, importar saída oneshot do Pyarmor e tentar novamente objetos de código não suportados com fallback de IA.
O aplicativo suporta ambientes de desktop Windows e Linux.


.pyc / .pyo diretamenteMergedNativeAICtrl+RO aplicativo não envia o .pyc inteiro por padrão.
Ele monta um prompt a partir do objeto de código atualmente selecionado, incluindo:
Isso mantém a reconstrução com fallback focada no nó selecionado, em vez do arquivo inteiro.
O aplicativo atualmente prefere executáveis locais próximos ao binário do aplicativo e procurará por:
pycdc.exepycdcpycdas.exepycdasno mesmo diretório que o binário do pycdc-studio.
Você pode sobrescrevê-los com variáveis de ambiente:
PYCDC_STUDIO_PYCDCPYCDC_STUDIO_PYCDASO aplicativo pode importar projetos protegidos por Pyarmor delegando a
Lil-House/Pyarmor-Static-Unpack-1shot.
Fluxo de integração atual:
oneshot/shot.py em um diretório de projeto Pyarmor selecionadopyarmor-1shot gerar .1shot.das e .1shot.cdc.pyEspera-se que os pacotes de lançamento incluam a ferramenta oneshot do Pyarmor e as dependências de pacotes Python necessárias automaticamente.
Para desenvolvimento local, o código atual primeiro procura por arquivos incluídos próximos ao pacote do aplicativo, e também suporta um clone local em:
external/Pyarmor-Static-Unpack-1shot/oneshot/shot.pye espera que pyarmor-1shot / pyarmor-1shot.exe esteja disponível no mesmo diretório
que shot.py.
Você também precisa de um ambiente Python que possa executar shot.py, incluindo
pycryptodome.
Se seu layout for diferente, você pode ainda sobrescrevê-lo com variáveis de ambiente:
PYCDC_STUDIO_PYARMOR_PYTHONPYCDC_STUDIO_PYARMOR_SHOTPYCDC_STUDIO_PYARMOR_PYTHONPATHPYCDC_STUDIO_PYARMOR_OUTPUT_ROOTExemplo:
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-studioFile -> Import Pyarmor Project...pyarmor_runtime.1shot.* gerados no workspaceNotas:
PYCDC_STUDIO_PYARMOR_OUTPUT_ROOT esteja definido.Antes de usar o fallback de IA, abra Settings e configure pelo menos:
Base URLAPI KeyModelO cliente atual espera um endpoint de API compatível com OpenAI.
A caixa de diálogo de configurações armazena a configuração do provedor com QSettings e recorre a variáveis de ambiente quando um campo está vazio.
Variáveis de ambiente suportadas:
PYCDC_STUDIO_AI_BASE_URLPYCDC_STUDIO_AI_API_KEYPYCDC_STUDIO_AI_MODELPYCDC_STUDIO_AI_SYSTEM_PROMPTRequisitos:
Exemplo:
cmake -S . -B build
cmake --build build
pycdc-studio.pyc / .pyo, ou arraste uma pasta para a janelaFile -> Import Pyarmor Project... para um projeto protegido por PyarmorSettings no menu superior e configure seu modelo de IA se quiser usar o fallback de IARetry with AI no nó selecionado se a descompilação nativa estiver incompleta ou erradaCasos de teste mais longos estão incluídos em test/:
workflow_orchestrator.pyasync_batch_runner.pyplugin_config_resolver.pyO repositório rastreia apenas as amostras fonte.
Para gerar arquivos .pyc locais para teste de arrastar e soltar:
python test/compile_test_samples.py
Esse script escreve o bytecode compilado em test/__pycache__/.
Este projeto ainda é experimental.
A visualização Merged atual é um documento misto honesto:
Ainda não é um merger de fonte inline completo.
Este projeto integra com pycdc / pycdas, cujo projeto upstream é licenciado sob GPL-3.0.
pycdc: GPL-3.0pycdc / pycdas devem incluir o aviso GPL-3.0pycdc upstream incluído em THIRD_PARTY_NOTICES.txtVeja o projeto upstream para detalhes completos da licença: