Unpack .crx files the way Chrome does
Project description
crx_unpack is a Python library for extracting the contents of a Chrome extension file (.crx).
Structure of CRX Package Format
As explained at https://developer.chrome.com/extensions/crx
Package Header
The header contains the author’s public key and the extension’s signature. The signature is generated from the ZIP file using SHA-1 with the author’s private key. The header requires a little-endian byte ordering with 4-byte alignment. The following table describes the fields of the .crx header in order:
Field |
Type |
Length |
Value |
Description |
---|---|---|---|---|
magic number |
char[] |
32 bits |
Cr24 |
Chrome requires this constant at the beginning of every .crx package. |
version |
unsigned int |
32 bits |
2 |
The version of the *.crx file format used (currently 2). |
public key length |
unsigned int |
32 bits |
pubkey.length |
The length of the RSA public key in bytes. |
signature length |
unsigned int |
32 bits |
sig.length |
The length of the signature in bytes. |
public key |
byte[] |
pubkey.length |
pubkey.contents |
The contents of the author’s RSA public key formatted as an X509 SubjectPublicKeyInfo block. |
signature |
byte[] |
sig.length |
sig.contents |
The signature of the ZIP content using the author’s private key. The signature is created using the RSA algorithm with the SHA-1 hash function. |
Extension Contents
The extension’s ZIP file is appended to the *.crx package after the header. This should be the same ZIP file that the signature in the header was generated from.
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
Hashes for crx_unpack-0.0.5.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9954a2ca3b1be00e79d3757cb647d910b8f103d7f99ad04539e168c8dc2df928 |
|
MD5 | 4936be09c4dc2b6599cdf101bc3233f6 |
|
BLAKE2b-256 | 803bacc9698dfd65d7f351c499d2d423070bb02207d7e73605c4ca18abebbf1a |