Commit Graph
68 Commits
Author SHA1 Message Date
Momoko-Ayase 7f143b3b27 Support managed (CLR) EXEs in the old-layout EXE pipeline
Managed EXE builds differ from their native counterparts in the old
layout: the encrypted import-name table pointer is null (their imports
are just the CLR bootstrap stub), the config block's entry-point field
is 0, and the COR20 header / BSJB metadata stream / CLR resources are
stored verbatim in the protected file rather than arriving through the
section-block pass.

- Skip the import-string walk when the table pointer is null instead of
  chasing header garbage as a pointer chain (previously a caught
  out-of-bounds panic reported as corrupt input).
- Keep the protected header's entry point when the config block stores
  0, instead of overwriting it with 0.
- Restore the COR20 header, BSJB metadata stream, and CLR resources
  verbatim from the protected file after the .text dd8 pass, and
  suppress the native COR20-directory clearing when the restore ran.

Validated by decompiling the unpacked managed EXEs with ilspycmd: full
assemblies (types, methods, IL bodies) decompile cleanly. Golden corpus
unchanged (35/35 byte-identical).
2026-08-16 05:33:44 +08:00
bfloat16 35076848b6 chore: ignore local test corpus 2026-08-16 03:49:11 +08:00
bfloat16 18886272e5 docs: note embedded metadata compatibility 2026-08-16 03:43:12 +08:00
bfloat16 b534de872d refactor: move library implementations into modules 2026-08-16 03:38:42 +08:00
bfloat16 a9aaf95e01 docs: add Android compatibility matrix 2026-08-16 03:31:25 +08:00
bfloat16 7f827d6400 feat: add folder-based Android unpack workflow 2026-08-16 02:38:07 +08:00
bfloat16 131ced6db5 feat: add static stage extraction and metadata detection 2026-08-16 01:47:25 +08:00
bfloat16 b1d3699df3 feat: add static Android il2cpp restoration 2026-08-16 00:34:08 +08:00
bfloat16 9433b4dcca Initial commit 2026-08-15 22:20:03 +08:00
bfloat16 763bdbb21f docs(readme): organize compatibility matrix by game 2026-08-13 10:49:44 +08:00
bfloat16 c5982a64b9 fix(unpacker): classify checksum range failures 2026-08-13 10:49:07 +08:00
bfloat16 55a31a2371 doc(none): add README.md 2026-08-12 23:57:00 +08:00
bfloat16 caadbd5325 fix(unpacker): validate executable entry transforms 2026-08-11 19:24:45 +08:00
bfloat16 ab1a14c9d1 perf(scan): skip extensionless files by default 2026-08-11 19:24:32 +08:00
bfloat16 e9ead4dc5f refactor: init 2026-08-11 14:19:56 +08:00
bfloat16 a89900a812 fix(unpacker): refine layout validation and diagnostics 2026-08-11 11:42:12 +08:00
bfloat16 67178d34af feat: Optimize error reporting 2026-08-11 10:51:37 +08:00
Momoko-Ayase 21cd151e15 First public commit v1.0.0 2026-08-09 00:08:31 +08:00