squid_80: You know you can patch(hexedit) storm.dll to allocate read+write+executable memory, right? So when it tries to run its dynamically generated code it won't trigger a NX exception...
bdschnei: Good hint! After patching the respective storm.dlls by changing 2 bytes from 04 to 40 at offsets 0x1d43b and 0x1dce8
Diablo.exe seems to run ;)
(This changes the flProtect argument to two VirtualAlloc() calls, 04 is PAGE_READWRITE, 40 is PAGE_EXECUTE_READWRITE)
storm.dll:
0x1d43b: 04 -> 40
0x1dce8: 04 -> 40
After these changes, Diablo also runs without disabling DEP.
UPDATE: This is now included in
Internal Hotfix v3 (11 March 2019)
added a potential fix for mouse issues;
added a workaround for DEP issues on some machines;
No need to patch manually :)
Hi, this fix worked perfectly for Diablo's storm.dll. Do you have a similar fix for Hellfire?
Its storm.dll seems to be different at those offsets, and I tried searching for a couple of hex bytes to find correspondence but no luck.