tag align to OCT release
download pre-compiled application here: https://opencheattables.com/viewtopic.php?f=17&t=1797
Release v488 — Proxy DLL Deployment, DLL Lifecycle Hardening, UE 5.8 Support, Frieren-Themed Refactor
Range: v449 → v488 (40 commits) Highlights: Proxy DLL injection workflow (version.dll / dinput8.dll alternatives, passive-mode mutex), UE 5.8 detection + chunked-layout preset, DLL lifecycle hardening (DllMain detach, scan-thread join, pipe-server lock-while-join), Avalonia 12.0 API migration, Live Walker destroyed-object hang fix, and codebase-wide rename to Frieren-themed module names.
Proxy DLL Deployment
A new injection mode that drops a renamed proxy stub into the game's directory so the DLL loads on game start — no Cheat Engine attach required for users who only want to read pipe data.
version.dll/dinput8.dllalternatives — pick whichever the target game's import table actually resolves.dinput8.dllchosen for games that don't linkversion.dll.- UI radio button in the ProxyDeploy panel to pick which proxy the deploy step copies.
- Passive-mode mutex — proxy build of the DLL holds a named mutex so a second injection (e.g. CE) is detected and skipped.
- Skip CE inject when proxy DLL already loaded —
ue5dump.luachecks for the mutex before callinginjectDll, preventing double-load. - Single-click UI refresh after Deploy / Undeploy (was: required a second click to update the deployed-state badge).
DLL Lifecycle Hardening (audits A + B)
Two-pass audit of teardown paths that previously could deadlock or use-after-free during process exit / DLL unload.
Audit A
DllMain(DLL_PROCESS_DETACH)is now a no-op — Windows holds the loader lock during detach, and any pipe-server / scan-thread cleanup that touches OS APIs is forbidden there.- Join missing scan thread — earlier builds could leak the scan thread if the user closed the game before scan completion; cleanup now joins explicitly.
Audit B
- Fern (PipeServer): lock-while-join pattern — disconnect under lock, join outside lock, to avoid the worker thread re-entering the same mutex.
- Mimic (Mailbox): explicit state machine for inflight IPC; rejects new requests once shutdown is signaled.
- Stark (GameThreadDispatch): soft-disable path — MinHook unhook is best-effort during teardown; if the hook can't be cleanly removed, dispatch falls back to no-op rather than crashing.
UI side
IDisposableon timer-owning ViewModels; panel event handlers are explicitly unsubscribed when panels close (was: stale handlers fired against disposed VMs).
UE 5.8 Support
- Version detection — Tier patterns extended to recognize UE 5.8 builds.
- Chunked-layout preset —
Aura::ObjectArrayexposes a 5.8 preset (matches newFUObjectArraystride / chunk size).
Avalonia 12.0 API Migration
- Fixed breaking API changes from Avalonia 12.0.0 —
IClassicDesktopStyleApplicationLifetimeaccess pattern, control template / template-binding adjustments, and assorted property renames. - Sweep of remaining Avalonia + xUnit compile warnings.
Live Walker — destroyed-object hang fix
Browsing a UObject whose owning class had since been GC'd would hang the walker indefinitely (offset reads against a torn-down UClass). Walker now validates the class pointer's signature before traversing properties; invalid → return cleanly with an error event rather than blocking the worker thread.
Frieren-Themed DLL Refactor (PR #175)
Codebase-wide rename of C++ DLL modules to Frieren-character names for thematic consistency and to keep namespaces short / unambiguous.
| Module | New name |
|---|---|
| Memory | Macht |
| Logger | Sein |
| Signatures | Himmel |
| OffsetFinder | Genau |
| ObjectArray | Aura |
| FNamePool | Serie |
| UStructWalker | Ubel |
| ExportAPI | Frieren |
| PipeServer | Fern |
| GameThreadDispatch | Stark |
| Mailbox | Mimic |
| HintCache | Flamme |
| CEPlugin | Methode |
| ProxyVersion | Lugner |
Done in two phases: A (file renames only, preserving behavior to keep diffs reviewable) → B (namespace + reference updates). See docs/naming-convention.md.
UI / UX Polish
- Empty-state logo when LiveWalker DataGrid has no data (cleaner first-run experience).
- Project logo (
UE5CEDumper.jpg) added. - AOT / trim warnings swept across the C# tree (every project now builds clean under Native AOT).
- xUnit analyzer warnings cleared.
Dependencies
- NuGet packages refreshed (Avalonia, ReactiveUI, xUnit, source generators).
minhookand private submodules updated..gitignore: excludebuild_proxy_dinput8/build output.
Pull Requests Merged
- #175 — Frieren-themed DLL rename (Phases A + B)
- #178 — Avalonia 12.0 API compat
- #180 — UE 5.8 version detection
- #182 — Live Walker destroyed-object hang
- #187 — AOT/trim + xUnit warning sweep
- #188 — Proxy DLL deployment (version.dll / dinput8.dll, passive mutex)
- #189 — DLL lifecycle hardening + UI lifetime + NuGet refresh
- #190 — UE 5.8 chunked layout preset
Full Changelog: https://github.com/bbfox0703/UE5CEDumper/compare/v449...v488
# Release v488 — Proxy DLL Deployment, DLL Lifecycle Hardening, UE 5.8 Support, Frieren-Themed RefactorRange: v449 → v488 (40 commits)
Highlights: Proxy DLL injection workflow (version.dll / dinput8.dll alternatives, passive-mode mutex), UE 5.8 detection + chunked-layout preset, DLL lifecycle hardening (DllMain detach, scan-thread join, pipe-server lock-while-join), Avalonia 12.0 API migration, Live Walker destroyed-object hang fix, and codebase-wide rename to Frieren-themed module names.
Proxy DLL Deployment
A new injection mode that drops a renamed proxy stub into the game's directory so the DLL loads on game start — no Cheat Engine attach required for users who only want to read pipe data.
version.dll/dinput8.dllalternatives — pick whichever the target game's import table actually resolves.dinput8.dllchosen for games that don't linkversion.dll.- UI radio button in the ProxyDeploy panel to pick which proxy the deploy step copies.
- Passive-mode mutex — proxy build of the DLL holds a named mutex so a second injection (e.g. CE) is detected and skipped.
- Skip CE inject when proxy DLL already loaded —
ue5dump.luachecks for the mutex before callinginjectDll, preventing double-load. - Single-click UI refresh after Deploy / Undeploy (was: required a second click to update the deployed-state badge).
DLL Lifecycle Hardening (audits A + B)
Two-pass audit of teardown paths that previously could deadlock or use-after-free during process exit / DLL unload.
Audit A
DllMain(DLL_PROCESS_DETACH)is now a no-op — Windows holds the loader lock during detach, and any pipe-server / scan-thread cleanup that touches OS APIs is forbidden there.- Join missing scan thread — earlier builds could leak the scan thread if the user closed the game before scan completion; cleanup now joins explicitly.
Audit B
- Fern (PipeServer): lock-while-join pattern — disconnect under lock, join outside lock, to avoid the worker thread re-entering the same mutex.
- Mimic (Mailbox): explicit state machine for inflight IPC; rejects new requests once shutdown is signaled.
- Stark (GameThreadDispatch): soft-disable path — MinHook unhook is best-effort during teardown; if the hook can't be cleanly removed, dispatch falls back to no-op rather than crashing.
UI side
IDisposableon timer-owning ViewModels; panel event handlers are explicitly unsubscribed when panels close (was: stale handlers fired against disposed VMs).
UE 5.8 Support
- Version detection — Tier patterns extended to recognize UE 5.8 builds.
- Chunked-layout preset —
Aura::ObjectArrayexposes a 5.8 preset (matches newFUObjectArraystride / chunk size).
Avalonia 12.0 API Migration
- Fixed breaking API changes from Avalonia 12.0.0 —
IClassicDesktopStyleApplicationLifetimeaccess pattern, control template / template-binding adjustments, and assorted property renames. - Sweep of remaining Avalonia + xUnit compile warnings.
Live Walker — destroyed-object hang fix
Browsing a UObject whose owning class had since been GC'd would hang the walker indefinitely (offset reads against a torn-down UClass). Walker now validates the class pointer's signature before traversing properties; invalid → return cleanly with an error event rather than blocking the worker thread.
Frieren-Themed DLL Refactor (PR #175)
Codebase-wide rename of C++ DLL modules to Frieren-character names for thematic consistency and to keep namespaces short / unambiguous.
| Module | New name |
|---|---|
| Memory | Macht |
| Logger | Sein |
| Signatures | Himmel |
| OffsetFinder | Genau |
| ObjectArray | Aura |
| FNamePool | Serie |
| UStructWalker | Ubel |
| ExportAPI | Frieren |
| PipeServer | Fern |
| GameThreadDispatch | Stark |
| Mailbox | Mimic |
| HintCache | Flamme |
| CEPlugin | Methode |
| ProxyVersion | Lugner |
Done in two phases: A (file renames only, preserving behavior to keep diffs reviewable) → B (namespace + reference updates). See [docs/naming-convention.md](docs/naming-convention.md).
UI / UX Polish
- Empty-state logo when LiveWalker DataGrid has no data (cleaner first-run experience).
- Project logo (
UE5CEDumper.jpg) added. - AOT / trim warnings swept across the C# tree (every project now builds clean under Native AOT).
- xUnit analyzer warnings cleared.
Dependencies
- NuGet packages refreshed (Avalonia, ReactiveUI, xUnit, source generators).
minhookand private submodules updated..gitignore: excludebuild_proxy_dinput8/build output.
Pull Requests Merged
- [#175](#175) — Frieren-themed DLL rename (Phases A + B)
- [#178](#178) — Avalonia 12.0 API compat
- [#180](#180) — UE 5.8 version detection
- [#182](#182) — Live Walker destroyed-object hang
- [#187](#187) — AOT/trim + xUnit warning sweep
- [#188](#188) — Proxy DLL deployment (version.dll / dinput8.dll, passive mutex)
- [#189](#189) — DLL lifecycle hardening + UI lifetime + NuGet refresh
- [#190](#190) — UE 5.8 chunked layout preset
Full Changelog: v449...v488