mirror of
https://github.com/quer3q/ps5-dump-forge.git
synced 2026-10-18 19:49:54 -05:00
New crate ps5-dump-forge-lz4: AMPRPAK4 manifest writer and validating reader (volumes, CRC sidecar, runtime profile), AMPRIDX3 and AMPRCMD1 readers, pack rules (TOML profile subset, traces, built-in keep-loose list, auto-loose), embedded ampr_emu 0.4.2.1 release and trace runtimes (vendor/ampr_emu, pinned by SHA-256; vendor patch 0023). Core: trace (in-place folder patch/unpatch, image rebuild + replace), pack into an LZ4 folder or straight into .ffpkg/.exfat/.ffpfs/.ffpfsc (measure pass, no staging), unpack any packed source, traces zip download and reader, Save as profile, LZ4 inspection facts. Every file and folder written on the PS5 is 0777 (the app loader refuses game files without world-execute, CE-107750-0). Traces only narrow the keep-loose list: engine files opened before AMPR starts (.pak/.utoc/.ini) stay loose. CLI --lz4-* flags and lz4-patch/lz4-unpatch/lz4-profile; server routes lz4_patch, lz4_unpatch, lz4_traces (streamed zip), lz4_plan_profile; LZ4 tab in the app. Trace room 256 MiB default, 1 GiB max (measured). Fuzz targets, scripts/check-lz4.sh upstream cross-check, docs. Console: Stellar Blade traced, packed (5 .ucas) and played; unpack and 0777 folders boot. Other titles and long sessions are still open (TODO). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
115 lines
2.0 KiB
TOML
115 lines
2.0 KiB
TOML
# cargo-fuzz targets for every reader of untrusted images. Its own workspace,
|
|
# not a member of the root one: it builds on nightly with sanitizer flags.
|
|
#
|
|
# ./seed.sh # seed corpora (stable)
|
|
# cargo +nightly fuzz run exfat -- -max_total_time=60
|
|
[package]
|
|
name = "ps5-dump-forge-fuzz"
|
|
version = "0.0.0"
|
|
publish = false
|
|
edition = "2024"
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[package.metadata]
|
|
cargo-fuzz = true
|
|
|
|
[workspace]
|
|
members = [".", "seedgen"]
|
|
|
|
[dependencies]
|
|
libfuzzer-sys = "0.4"
|
|
ps5upload-fpkg = { path = "../vendor/ps5upload-fpkg" }
|
|
ps5-dump-forge-fpkg = { path = "../crates/ps5-dump-forge-fpkg" }
|
|
ps5-dump-forge-pfs = { path = "../crates/ps5-dump-forge-pfs" }
|
|
ps5-dump-forge-lz4 = { path = "../crates/ps5-dump-forge-lz4" }
|
|
|
|
[lib]
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "exfat"
|
|
path = "fuzz_targets/exfat.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "ufs2"
|
|
path = "fuzz_targets/ufs2.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "pfsc"
|
|
path = "fuzz_targets/pfsc.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "pfs"
|
|
path = "fuzz_targets/pfs.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "fih_cnt"
|
|
path = "fuzz_targets/fih_cnt.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "kraken_descriptor"
|
|
path = "fuzz_targets/kraken_descriptor.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "kraken_block"
|
|
path = "fuzz_targets/kraken_block.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "fpkg_source"
|
|
path = "fuzz_targets/fpkg_source.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "lz4_manifest"
|
|
path = "fuzz_targets/lz4_manifest.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "lz4_index"
|
|
path = "fuzz_targets/lz4_index.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "lz4_journal"
|
|
path = "fuzz_targets/lz4_journal.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "lz4_unpack"
|
|
path = "fuzz_targets/lz4_unpack.rs"
|
|
test = false
|
|
doc = false
|
|
bench = false
|
|
|
|
[profile.release]
|
|
debug = 1
|