Topic: D2GS and Windows Server Core 2019 x64
Hi all,
Trying to migrate a REALLY OLD PvPGN server running on Windows Server 2003 to something not so exploitable if I ever open it to people on the internet.
With that said, right now, the server is for my LAN ONLY
So long story short, after adding app compatibility FOD, dropping the firewall, and a few other tweaks, PvPGN/D2GS are installed properly from what I can tell, with the appropriate files from Diablo II LOD 1.13d. Everything runs... sort of. The PvPGN stack itself works, is stable, I can create a new user, create a new character, even create a new game, but it ends up saying "You are in line to create a game" and that I am in position 1. Great, time to debug.
I'd like to state that app compatibility is set to XP SP2 for all binaries here. Before I did such, D2GS would crash immediately. Now it at least loads. Nothing is written to the log files indicating what is going on, but event viewer has entries of the problem:
Faulting application name: D2GS.EXE, version: 1.10.3.6, time stamp: 0x40473cc7
Faulting module name: Fog.dll, version: 0.0.0.0, time stamp: 0x4e9de32b
Exception code: 0xc00000fd
Fault offset: 0x00008285
Faulting process id: 0x9d4
Faulting application start time: 0x01d695bb6757e2c3
Faulting application path: C:\Program Files (x86)\D2GS\D2GS.EXE
Faulting module path: C:\Program Files (x86)\D2GS\Fog.dll
Report Id: 22e565b0-5c66-4e94-b326-ac683b8e10cd
Faulting package full name:
Faulting package-relative application ID:
So D2GS is crashing due to a stack overflow originating in Fog.dll. I have little doubt that this is a compatibility problem, or Windows security features getting in the way. Any direction would be appreciated. Also, it would be good to hear the latest server platforms that people have successfully ran D2GS/PvPGN on. Thanks
Added: 28.09.2020 15:55
Edit:
Tried all different compatibility modes. Nothing worked better.
Disabled DEP. No difference.
Tried looking into Fog.dll itself. The export table has been mostly scrubbed so there is nothing of value there.
Edit2:
Looked at the d2gs source. Fog.dll gets patched in before D2GSPreInit and according to the log files, we get well past that . The game server actually starts. It just crashes inside afterwards. Again, it isn't caught in the program, so there isn't anything about closing down the process in the logs. Only in a Windows Application event in Windows event viewer
d2ge.log
09/28 16:23:58.324 D2GEThread: Server Thread 2720 Created
d2gs.log
09/28 16:23:41.918 (*)D2GSPreInit: Maxinum Game Number is 400
09/28 16:23:41.918 (*)PatchFogPool: Pre-Allocate 402 Pools=0x01AF0000 (0x255E58 bytes)
09/28 16:23:41.965 (*)PatchModule: 39 of 39 Patches Successfully Applied
09/28 16:23:41.965 (*)ScriptLoad: 0 Patches Loaded From Script File d2gs.script
09/28 16:23:41.965 (*)PatchModule: 0 of 0 Patches Successfully Applied
09/28 16:23:41.965 (*)D2GSInit: Starting up Game Server,Initializing...
09/28 16:23:41.965 (*)D2GSInit: Server Name: Diablo II Game Server