O extrator PyInstaller é um script Python para extrair o conteúdo de um arquivo executável gerado por pyinstaller.
O cabeçalho dos arquivos PYC é corrigido automaticamente para que um decompilador de bytecode python o reconheça. O script pode ser executado no Python 2.x e 3.x. PyInstaller versions 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.5.1, 4.6, 4.7, 4.8, 4.9, 4.10, 5.0, 5.0.1, 5.1, 5.2, 5.3, 5.4, 5.4.1, 5.5, 5.6, 5.6.1, 5.6.2, 5.7.0, 5.8.0, 5.9.0, 5.10.0, 5.10.1, 5.11.0, 5.12.0, 5.13.0, 5.13.1, 5.13.2, 6.0.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 6.5.0, 6.6.0, 6.7.0, 6.8.0, 6.9.0, 6.10.0, 6.11.0, 6.11.1 are tested & supported. Provavelmente trabalhará com outras versões também.
Este projeto foi originalmente hospedado no Sourceforge.
O script pode ser executado passando o nome do exe como um argumento.
$ python pyinstxtractor.py <filename>
X:>python pyinstxtractor.py <filename>
Recomenda -se executar o script na mesma versão do Python, que foi usada para gerar o executável. Isso é para evitar erros de soliding (se houver) durante a extração do arquivo pyz.
X:> python pyinstxtractor.py test.exe
[+] Processing disttest.exe
[+] Pyinstaller version: 2.1+
[+] Python version: 36
[+] Length of package: 5612452 bytes
[+] Found 59 files in CArchive
[+] Beginning extraction...please standby
[+] Possible entry point: pyiboot01_bootstrap.pyc
[+] Possible entry point: test.pyc
[+] Found 133 files in PYZ archive
[+] Successfully extracted pyinstaller archive: disttest.exe
You can now use a python decompiler on the pyc files within the extracted directory
Depois de extrair os PYCs, você pode usar um decompilador Python como o Uncompyle6 e o Decpyle ++.
X:> uncompyle6.exe test.exe_extractedtest.pyc
X:> uncompyle6.exe test.exe_extractedPYZ-00.pyz_extracted__future__.pyc
O PyInstxtractor pode extrair nativamente os binários do elfo Linux sem a necessidade de outras ferramentas.
Para outras perguntas e informações, consulte o wiki e as perguntas frequentes
GNU Licença pública em geral v3.0