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.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5e7cbc36441b7371c29dcf4393d282a8bc815ab8c2dc595348f923694f7f47a |
|
MD5 | 09394af52bf24960ce775bf04de42c93 |
|
BLAKE2b-256 | 94e11df04ff8ed9f9900280904c84cda2cb5574f6386ae7f80656420b1a4ba56 |