Merge bfloat16-senbei workspace restructure, bump to 1.1.0

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.
This commit is contained in:
2026-08-30 22:31:21 +08:00
49 changed files with 5259 additions and 3856 deletions
+9 -7
View File
@@ -4,17 +4,19 @@ Guidance for AI coding agents (and human contributors) working in this repo.
## Project
Senbei is a static unpacker for Crackproof-protected PE files: a pure,
panic-free, no-I/O unpacker core (`src/unpacker/`) plus a thin CLI shell
(`src/`), an il2cpp metadata de-obfuscator (`src/metadata.rs`), and a
WebAssembly browser frontend (`web/`). Read `docs/design.md` first.
Senbei is a static unpacker for Crackproof-protected PE files: a Cargo
workspace with a pure, panic-free, no-I/O unpacker core (`senbei-pe/`, built
on `senbei-crypto/`), an il2cpp metadata de-obfuscator (`senbei-metadata/`),
filesystem/CLI orchestration (`senbei-io/`), the `senbei` binary
(`senbei-cli/`), and a WebAssembly browser frontend (`web/`, outside the
workspace). Read `docs/design.md` first.
## Commands
```cmd
cargo build --release :: CLI
cargo test --release :: full suite (golden corpus: samples/, git-ignored)
cargo clippy --all-targets -- -D warnings
cargo build --release :: CLI (default member: senbei-cli)
cargo test --release --workspace :: full suite (golden corpus: samples/, git-ignored)
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all
cd web && wasm-pack build --target web --release :: browser build
```