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.1.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.1-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bitrock_unpacker-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d06db31b0927ef55ba234cd2e3da9e9c2bdaba4e3474fd25414fd77781f68cd1
MD5 d0c65c30144ca992a318b3e3c72a6627
BLAKE2b-256 90221a920bb3f0c74bf88b9431538ddb99396ca83891b75bec5de79d9813ec90

See more details on using hashes here.

Provenance

The following attestation bundles were made for bitrock_unpacker-0.1.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for bitrock_unpacker-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f1f232da89810381dd9c3840da98c928c99bb2a8ade4a82d8674f420e132bd5
MD5 dc4eec4d233c3b0e30b1fda4440d5d62
BLAKE2b-256 11151269fba0e4e9952d2355880a6a0e9c7843c32cad3d4848c4df2af6da6d71

See more details on using hashes here.

Provenance

The following attestation bundles were made for bitrock_unpacker-0.1.1-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