Jesse Allen wrote:
On 4/22/06, Mike Hearn mike@plan99.net wrote:
On Sat, 22 Apr 2006 11:12:06 +0100, Alistair John Strachan wrote:
Well, I'm using a "modified" game executable which does not check for the presence of a CD. However, it hooks into the original game executable so that the game can validate itself. Alas, it's probably not the more pure win32 application known to man..
Does it work if you use a legit copy?
It appears to be the .iyhivx section, it's not marked MEM_EXECUTE and googling it shows people reporting backtraces with offsets just into it ... so looks like Marcus is correct.
In which case this is really a Warcraft bug. But as NX is not really enforced on Windows I guess we need to fix this in Wine by always marking sections executable or something. Well it's easy to do but I dunno what AJ wants and he just went on holiday. For now just hack dlls/ntdll/loader.c to always mark sections as executable.
thanks -mike
Doesn't Windows x86-64 enforce NX?
Jesse
Only if you are talking about hardware based NX, but that is different from what is going on here. The kernel has software-based NX enabled by default now and that is what is affecting this loader..