Changes
- IAT-level shutdown hooks — replaces
TerminateProcessandExitProcessIAT entries with stubs that block self-termination. This catches ALL shutdown call sites, not just the ones covered by TerminateGuard/ResumeReboot patches.- TerminateProcess stub: blocks calls with handle
-1(self), forwards other handles to the real function - ExitProcess stub: blocks all exit calls
- TerminateProcess stub: blocks calls with handle
- Process death detection — CRC timer now logs the game's exit code when it detects process death (helps diagnose crash type: exception vs clean exit vs terminated)
- Fixed stale
/5in deferred bypass log (now correctly shows/7)
GamePass testing needed
If the game still shuts down after ~10 minutes, the log will now show:
CRC tick: game process DIED (exit code 0x...) — disarming timer
The exit code tells us what killed the process:
0x00000000= clean exit (ExitProcess/TerminateProcess called)0xC0000005= access violation (crash)0x40000004= debug breakpoint (anti-debug)- Other codes help narrow down the cause
Please share the trainer.log contents if the crash still occurs.