BPK

application/octet-stream

Safe

Magic Bytes

Offset: 10
23 20 54 68 69 73 20 69 73 20 61 20 73 68 65 6C 6C 20 61 72 63 68 69 76 65

The BPK format is a specialized variant of the Unix shell archive (shar) utility developed for the Unix community to bundle multiple files into a single text-based container. It primarily functions as a self-extracting archive that recreates directory structures and file contents when executed within a compatible shell environment. This legacy format is now largely obsolete, yet it requires caution because it relies on executable commands that could potentially perform unauthorized system modifications.

Extension

.bpk

MIME Type

application/octet-stream

Byte Offset

10

Risk Level

Safe

Validation Code

How to validate .bpk files in Python

Python
def is_bpk(file_path: str) -> bool:
    """
    Check if file is a valid BPK by magic bytes.
    Signature offset: 10 bytes
    """
    signature = bytes([0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65])
    with open(file_path, "rb") as f:
        f.seek(10)
        return f.read(25) == signature

How to validate .bpk files in Node.js

Node.js
function isBPK(buffer: Buffer): boolean {
  // Signature offset: 10 bytes
  const signature = Buffer.from([0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65]);
  if (buffer.length < 35) return false;
  return buffer.subarray(10, 35).equals(signature);
}
Go
func IsBPK(data []byte) bool {
    // Signature offset: 10 bytes
    signature := []byte{0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x68, 0x65, 0x6C, 0x6C, 0x20, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65}
    if len(data) < 35 {
        return false
    }
    return bytes.Equal(data[10:35], signature)
}

API Endpoint

GET /api/v1/bpk
curl https://filesignature.org/api/v1/bpk

Related Formats