Files
ImHex-Patterns/patterns/pbzx.hexpat
Nicolás Alvarez 8f39ecd879 patterns: Added pattern file for Apple PBZX compressed streams (#63)
This is used by Apple for Xcode .xip files (cpio in pbzx in xar), OTA
updates of iOS, and other files.
2022-12-18 00:36:41 +01:00

31 lines
564 B
Rust

// pbzx compression stream
// Used by Apple on .xip files and OTA updates.
//
// Copyright (c) 2022 Nicolás Alvarez <nicolas.alvarez@gmail.com>
//
// SPDX-License-Identifier: GPL-2.0-or-later
#include <std/mem.pat>
#pragma endian big
#define SHOW_DATA 0
struct Chunk {
u64 uncompressed_size;
u64 compressed_size;
if (SHOW_DATA) {
u8 data[compressed_size] [[sealed]];
} else {
padding[compressed_size];
}
};
struct PBZX {
char magic[4];
u64 chunk_size;
Chunk chunks[while(!std::mem::eof())];
};
PBZX pbzx @ 0;