caff-archive

Crates.iocaff-archive
lib.rscaff-archive
version0.1.0
sourcesrc
created_at2023-11-28 02:40:06.6411
updated_at2023-11-28 02:40:06.6411
descriptiona library for manipulating CAFF archives
homepage
repositoryhttps://github.com/vtubing/caff-archive
max_upload_size
id1051535
size31,023
Chris Olstrom (colstrom)

documentation

https://docs.rs/caff-archive

README

caff-archive Latest Version

What is it?

A library for working with binary CAFF archives. This is the format used for .cmo3 and .can3 files.

How do I obtain this majestic tool?

Run the following Cargo command in your project directory (assuming you have cargo-edit installed):

cargo add caff-archive

Or add the following line to your Cargo.toml (in the [dependencies] array):

caff-archive = "^ 0.1"

How do I use it?

fn main() {
  let mut file = File::open(&archive).expect("failed to open archive for reading");
  let mut archive = caff_archive::Archive::read(&mut file).expect("failed to read archive from input data");
}

Optional Features

  • logging enables tracing and debugging logs when reading and writing archives.
  • discovery implies logging and enables additional logging of potentially interesting scenarios, from the perspective of this library. It will report things like raw values that were parsed into fallback values in enums, or data sections that are expected to be padding but contain non-zero bytes, along with different potential ways those bytes could be parsed, among other things.

How was this made?

  • Carefully, without using or referencing any code or libraries from the format vendor.
  • The ImHex highlighting patterns from the MOC3ingbird Exploit (CVE-2023-27566) was instrumental in understanding this format.
  • The discovery process for undocumented binary formats is described here.

License

caff-archive is available under the MIT License. See LICENSE.txt for the full text.

While the license is short, it's still written in fancy lawyer-speak. If you prefer more down-to-earth language, consider the following:

  • tl;drLegal has a simple visual summary available here.
  • FOSSA has a more in-depth overview available here.
Commit count: 1

cargo fmt