PROT_EXEC mmap/mprotect, i386 PAE + NX broken, x86-64 2.6.17-rc2
Tom Spear (Dustin Booker, Dustin Navea)
speeddymon at gmail.com
Sun Apr 23 11:25:09 CDT 2006
Jesse Allen wrote:
> On 4/22/06, Mike Hearn <mike at 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?
>>
>>
>>> http://devzero.co.uk/~alistair/wine/dump.log
>>>
>> 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..
More information about the wine-devel
mailing list