mirror of
https://github.com/Momoko-Ayase/Senbei.git
synced 2026-09-19 03:57:59 -04:00
Adopts the fork's workspace split (senbei-cli / senbei-crypto / senbei-io / senbei-metadata / senbei-pe), its structured error taxonomy, entry-transform and layout validation, PE32 dd8 key-formula selection with a skip floor, the CRT entry-stub dd8 oracle, and the extensionless-file scan skip. Kept from senbei on top of the restructure: - ManagedExe detection/routing and the CLR (COR20 + BSJB) metadata restore in the EXE pipeline. - The RET+int3 padding fingerprint as the primary dd8 padding signal, ahead of the mutated-position 0xCC fallback. - docs/, .github/, samples/, tests/ (moved to senbei-cli/tests), and the web/ wasm frontend (rewired to the split crates), all of which the fork had dropped. - The fork's README compatibility matrix is not taken: it names real games, which the public-repo hygiene rules forbid. - The wasm32 localtime fallback in logfile and unpack_bytes_force_exe (the web app's trap-recovery entry point), both lost in the restructure. Golden corpus: 35/35 byte-identical. clippy -D warnings clean; wasm32 check clean for the full workspace.
43 lines
872 B
TOML
43 lines
872 B
TOML
[workspace]
|
|
members = [
|
|
"senbei-cli",
|
|
"senbei-crypto",
|
|
"senbei-io",
|
|
"senbei-metadata",
|
|
"senbei-pe",
|
|
]
|
|
default-members = ["senbei-cli"]
|
|
# The wasm frontend is its own crate (own Cargo.lock, cdylib) and stays outside
|
|
# the workspace.
|
|
exclude = ["web"]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
version = "1.1.0"
|
|
edition = "2024"
|
|
license = "AGPL-3.0-only"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1"
|
|
indicatif = "0.18"
|
|
libc = "0.2"
|
|
owo-colors = "4"
|
|
tempfile = "3"
|
|
thiserror = "2"
|
|
walkdir = "2"
|
|
windows = { version = "0.62", features = [
|
|
"Win32_Foundation",
|
|
"Win32_System_Console",
|
|
"Win32_System_SystemInformation",
|
|
] }
|
|
senbei-crypto = { path = "senbei-crypto" }
|
|
senbei-io = { path = "senbei-io" }
|
|
senbei-metadata = { path = "senbei-metadata" }
|
|
senbei-pe = { path = "senbei-pe" }
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
strip = true
|