Pure-Python BitRock/InstallBuilder installer unpacker
Project description
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.txtfrom the embedded zlib stream. - Parses old CookFS
CFS0002suffix/page tables. - Decompresses CookFS pages: raw, raw deflate, bzip2, and LZMA-Alone.
- Decodes the CookFS
CFS2.200fsindex. - Lists and extracts files by fsindex path.
- Stitches BitRock big-file chunks named
___bitrockBigFileNinto their base file by default.
Limitations
- Encrypted/proprietary
maui::utilpayloads are not supported. - Full installer post-processing is out of scope; extraction writes archive contents.
- Full extraction requires
--yes-allwhen no--limitis 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d06db31b0927ef55ba234cd2e3da9e9c2bdaba4e3474fd25414fd77781f68cd1
|
|
| MD5 |
d0c65c30144ca992a318b3e3c72a6627
|
|
| BLAKE2b-256 |
90221a920bb3f0c74bf88b9431538ddb99396ca83891b75bec5de79d9813ec90
|
Provenance
The following attestation bundles were made for bitrock_unpacker-0.1.1.tar.gz:
Publisher:
publish.yml on vpetrigo/bitrock-unpacker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bitrock_unpacker-0.1.1.tar.gz -
Subject digest:
d06db31b0927ef55ba234cd2e3da9e9c2bdaba4e3474fd25414fd77781f68cd1 - Sigstore transparency entry: 2104718731
- Sigstore integration time:
-
Permalink:
vpetrigo/bitrock-unpacker@efd295fb69f1108cb6362a4109034660cfb0c5e6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/vpetrigo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@efd295fb69f1108cb6362a4109034660cfb0c5e6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file bitrock_unpacker-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bitrock_unpacker-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f1f232da89810381dd9c3840da98c928c99bb2a8ade4a82d8674f420e132bd5
|
|
| MD5 |
dc4eec4d233c3b0e30b1fda4440d5d62
|
|
| BLAKE2b-256 |
11151269fba0e4e9952d2355880a6a0e9c7843c32cad3d4848c4df2af6da6d71
|
Provenance
The following attestation bundles were made for bitrock_unpacker-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on vpetrigo/bitrock-unpacker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bitrock_unpacker-0.1.1-py3-none-any.whl -
Subject digest:
4f1f232da89810381dd9c3840da98c928c99bb2a8ade4a82d8674f420e132bd5 - Sigstore transparency entry: 2104718886
- Sigstore integration time:
-
Permalink:
vpetrigo/bitrock-unpacker@efd295fb69f1108cb6362a4109034660cfb0c5e6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/vpetrigo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@efd295fb69f1108cb6362a4109034660cfb0c5e6 -
Trigger Event:
release
-
Statement type: