pyinstxtractor
open-sourceThe section your link pointed to isn't on pyinstxtractor's page any more, so we've brought you to the top.
Extracts contents of PyInstaller-generated executables and fixes pyc headers for Python bytecode decompilation.
Summary
pyinstxtractor is an open-source Python script that unpacks PyInstaller-generated executables, pulling apart the CArchive and PYZ contents and repairing the pyc headers so a decompiler will recognize them. It runs as a command-line tool, invoked with the target executable as an argument, and works across Python 2.x and 3.x and a long list of tested PyInstaller versions from 2.0 through 6.19.0, with native support for Linux ELFELFThe standard binary format for executables, shared libraries, and object files on Linux and most Unix-like systems, giving cyber tools a predictable structure to parse, instrument, or analyze compiled code. binaries as well as Windows executables. It is aimed at reverse engineers and malware analysts who need to get from a compiled Python binary back to inspectable bytecode, typically handing the extracted pyc files to a separate decompiler like Uncompyle6 or Decompyle++, which its README names directly rather than trying to decompile itself. First committed in 2020 and still active, with a release cut 30 days ago.
Extracts contents of PyInstaller-generated executables and fixes pyc headers for Python bytecode decompilation.
How pyinstxtractor helps
What Python source is actually inside this compiled executable?
unpacks the CArchive and PYZ contents and repairs the pyc headers so the bytecode is recognizable, ready to hand to a separate decompiler like Uncompyle6 or Decompyle++
What entry point does this suspicious binary run first?
flags the likely entry-point pyc files it finds while walking the CArchive, so an analyst knows where to start reading
Which PyInstaller and Python version was used to build this binary?
reports the detected PyInstaller version and embedded Python version before extraction begins, based on the archive's own header data
How many bundled files and modules is this executable hiding?
prints a count of files found in the CArchive and, separately, in the PYZ archive as it unpacks them
Can this Linux malware sample be unpacked without a Windows toolchain?
reads Linux ELF binaries natively, pulling out the same CArchive and PYZ contents without needing another extraction tool first
Will an older or newer PyInstaller build still yield readable bytecode?
has been run against a long, explicitly tested list of PyInstaller releases from 2.0 through 6.19.0, so behaviour on an untested version outside that list is unverified
Languages
Command line
| option | found in | since | description |
|---|
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Score card
-
Shipping velocity releases a month, last 12 months
-
Documentation quality release-notes rubric, 0–100
-
Breaking-change discipline how rarely a release breaks users, and notice given
-
Maintenance risk quiet time against its own cadence, maintainers
-
Innovation & surface new capabilities, API and MCP surface
- Community health
-
Contributor trend distinct committers, this year against last
-
Maintainer concentration bus factor now against a year ago
-
Issue backlog trend issues closed per issue opened, 12 months
-
Responsiveness median time to a maintainer’s first reply
Nine scores for pyinstxtractor, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Score cards are part of every paid plan.
See plans → Already subscribed? Sign in →Trajectory
Blank means never measured; nothing here is a filled-in zero.
Peer standings are included with Researcher and Business. See how this tool ranks against its competitors, using data we don't publish anywhere else.
See plans →Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
- Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
- Documentation quality — the release-notes rubric published on the analytics page, unchanged.
- Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
- Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
- Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
- Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
- Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
- Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail pyinstxtractor puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
Checking release-note history…
Releases
Nothing shipped since we started watching. Releases and docs updates land here as they happen.
Project health
Issue, contributor and maintainer activity in extremecoders-re/pyinstxtractor, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.
- Contributors 1 ±0 vs prior 12 months
- Maintainers 1 +1 joined · −1 left, last 12 months
- Bus factor 1 committers behind half the commits
- Community-filed 92% of issues opened, last 12 months
- Median time to close < 1 day first maintainer reply 0.1 hours
- Open backlog 18 of 104 issues ever filed
- Issues opened / month 0 · 0 communitymaintainers
- Open backlog 18
- Contributors / month 0
- Commits / month 0
- Stars 4,487
- other 100%
Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this
Libraries its release ships
What its latest release locks, checked against known advisories.None of its release's images build from a lockfile we can read.
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can follow every release here.