Skip to main content

Pure-Python BitRock/InstallBuilder installer unpacker

Project description

CI PyPI - Version PyPI - Python Version PyPI Downloads

BitRock unpacker prototype

bitrock_unpacker is a module for extracting content of BitRock/InstallBuilder installers without Tcl/TclKit.

I created that repo since I was not able to run original Tcl unpacker from here on Windows.

Run without installing:

uvx bitrock-unpacker --help

Run as a module:

python -m bitrock_unpacker --help

If installed, it also exposes:

bitrock-unpacker --help

Current capabilities

  • Parses PE overlay boundaries.
  • Locates BitRock/CookFS markers.
  • Recovers manifest.txt from the embedded zlib stream.
  • Parses old CookFS CFS0002 suffix/page tables.
  • Decompresses CookFS pages: raw, raw deflate, bzip2, and LZMA-Alone.
  • Decodes the CookFS CFS2.200 fsindex.
  • Lists and extracts files by fsindex path.
  • Stitches BitRock big-file chunks named ___bitrockBigFileN into their base file by default.

Limitations

  • Encrypted/proprietary maui::util payloads are not supported.
  • Full installer post-processing is out of scope; extraction writes archive contents.
  • Full extraction requires --yes-all when no --limit is supplied.

Use --raw-chunks to show or extract hidden ___bitrockBigFileN chunk files instead of stitching them.

Quick checks

The pyproject.toml metadata exposes the bitrock-unpacker console script, so the same CLI can be checked through uv run without installing it globally:

python -m bitrock_unpacker <installer.exe> --manifest-only --debug
python -m bitrock_unpacker <installer.exe> --list-pages --limit 5
python -m bitrock_unpacker <installer.exe> --list-files --limit 10

Extract one file:

python -m bitrock_unpacker <installer.exe> `
  --path path/inside/archive.txt `
  --extract $env:TEMP\files `
  --limit 1

Inspect raw hidden chunks:

python -m bitrock_unpacker <installer.exe> `
  --raw-chunks `
  --list-files `
  --path path/inside/archive.bin___bitrockBigFile1 `
  --limit 5

Full stitched extraction can be large:

python -m bitrock_unpacker <installer.exe> --extract out --yes-all

Development

Validate the project metadata and run the self-test:

python -c "import tomllib; tomllib.load(open('pyproject.toml','rb')); print('pyproject: ok')"
python -m py_compile bitrock_unpacker\*.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bitrock_unpacker-0.1.2.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bitrock_unpacker-0.1.2-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file bitrock_unpacker-0.1.2.tar.gz.

File metadata

  • Download URL: bitrock_unpacker-0.1.2.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for bitrock_unpacker-0.1.2.tar.gz
Algorithm Hash digest
SHA256 eb9e2c7d49981c3afdf301331eb3191a7f42f6fcdbc2ffcf73aedb123b4b6f00
MD5 27430a6e0459301365b8b28dbd81033f
BLAKE2b-256 fb7fa39626a0705d011be86bb87a4d57582e40aae40a69280aeda1b5bc79acbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for bitrock_unpacker-0.1.2.tar.gz:

Publisher: publish.yml on vpetrigo/bitrock-unpacker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bitrock_unpacker-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for bitrock_unpacker-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 61ad3e43e321fa111d6e71285f21967073e7f96c4a17c32a5bda7df1fe63b7bb
MD5 681ff1967d4483b3b4af3f430f048c21
BLAKE2b-256 62cd998430ea1ae47cc6a105e4c7cc9e9a7d71b92771624ccf9107df9017d8bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for bitrock_unpacker-0.1.2-py3-none-any.whl:

Publisher: publish.yml on vpetrigo/bitrock-unpacker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page