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