
Desmontador e decompilador de bytecode Python em C++
Um Disassembler/Decompiler de Bytecode Python
O Decompyle++ tem como objetivo traduzir bytecode Python compilado de volta para código fonte Python válido e legível por humanos. Embora outros projetos tenham alcançado isso com sucesso variado, o Decompyle++ é único por buscar suportar bytecode de qualquer versão do Python.
O Decompyle++ inclui tanto um desmontador de bytecode (pycdas) quanto um decompilador (pycdc).
Como o nome sugere, o Decompyle++ é escrito em C++. Se desejar contribuir, faça um fork no github em https://github.com/zrax/pycdc
Gere um projeto ou makefile com CMake (Consulte a documentação do CMake para detalhes)
As seguintes opções podem ser passadas para o CMake para controlar recursos de depuração:
| Opção | Descrição |
|---|---|
-DCMAKE_BUILD_TYPE=Debug | Produzir símbolos de depuração |
-DENABLE_BLOCK_DEBUG=ON | Ativar saída de depuração de blocos |
-DENABLE_STACK_DEBUG=ON | Ativar saída de depuração de pilha |
Compile o projeto ou makefile gerado
makemake check JOBS=4 (opcional
FILTER=xxxx para executar apenas testes específicos)Para executar pycdas, o Desmontador PYC:
./pycdas [CAMINHO PARA O ARQUIVO PYC]
A desmontagem do bytecode é exibida na saída padrão.
Para executar pycdc, o Decompilador PYC:
./pycdc [CAMINHO PARA O ARQUIVO PYC]
O código fonte Python decompilado é exibido na saída padrão.
Quaisquer erros são exibidos na saída de erro.
Objetos de código marshalled:
Ambas as ferramentas suportam objetos de código marshalled do Python, como saída de marshal.dumps(compile(...)).
Para usar este recurso, especifique -c -v <versão> na linha de comando - a versão deve ser especificada pois os próprios objetos não contêm metadados de versão.
O Decompyle++ é obra de Michael Hansen e Darryl Pogue.
Contribuições adicionais de:
Ele é lançado sob os termos da GNU General Public License, versão 3; Consulte o arquivo LICENSE para detalhes.