Pyinstaller Extracteur est un script Python pour extraire le contenu d'un fichier exécutable généré par Pyinstaller.
L'en-tête des fichiers PYC est automatiquement corrigé de sorte qu'un décompilateur de bytecode python le reconnaîtra. Le script peut s'exécuter sur Python 2.x et 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, 5.5, 5.6, 5.6.1, 5.6.2, 5.7.0, 5, 5.5, 5.6, 5.6.1, 5.6.2, 5.7.0, 5, 5.5, 5.6, 5,6.1 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 sont testés et supportés. Travaillera probablement aussi avec d'autres versions.
Ce projet a été initialement organisé sur Sourceforge.
Le script peut être exécuté en passant le nom de l'EXE comme argument.
$ python pyinstxtractor.py <filename>
X:>python pyinstxtractor.py <filename>
Il est recommandé d'exécuter le script dans la même version de Python qui a été utilisé pour générer l'exécutable. Il s'agit d'éviter les erreurs de non-arshalling (le cas échéant) lors de l'extraction de l'archive 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
Après avoir extrait les PYC, vous pouvez utiliser un décompilateur Python comme Uncompyle6 et Decompyle ++.
X:> uncompyle6.exe test.exe_extractedtest.pyc
X:> uncompyle6.exe test.exe_extractedPYZ-00.pyz_extracted__future__.pyc
Pyinstxtractor peut extraire nativement les binaires des elfe Linux sans nécessiter d'autres outils.
Pour d'autres questions et informations, veuillez consulter le wiki et la FAQ
Licence publique générale GNU V3.0