PyInstaller Extractor is a Python script for reverse-engineering that extracts the contents of PyInstaller-generated executable files.
The tool addresses the problem of accessing the Python bytecode and resources bundled inside PyInstaller executables. It works by parsing the executable structure, locating the embedded pyc files, and automatically fixing their headers so that standard Python bytecode decompilers can recognize and process them. The script runs on both Python 2.x and 3.x environments and supports a wide range of PyInstaller versions.
Developers working in reverse engineering or security research who need to analyze PyInstaller-packaged applications should consider this tool. It is particularly suited for extracting bytecode from compiled executables when you have access to the binary file itself. The README recommends running the extraction script using the same Python version that was used to generate the target executable, as this prevents unmarshalling errors during the PYZ archive extraction process. The tool also natively supports extracting Linux ELF binaries without requiring additional external tools. For the next step after extraction, the README suggests using Python decompilers like Uncompyle6 or Decompyle++.
The project maintains active support across a comprehensive range of PyInstaller versions. Development activity shows consistent attention to compatibility across different PyInstaller releases and platforms. The tool has been ported to alternative implementations, with standalone binary and web-based versions available as separate projects.