On Sat, Oct 26, 2019 at 06:28:58PM +0100, Timothy Coltman wrote:
> However, compiling with the "dynarec" option turned on gives an access
> denied error when you run the emulator (the "mprotect" line in
> "set_memory_executable" of "ArmDynarec.c").  This is OS X 10.14.6, with
> the latest software updates.  This looks like an Apple change or
> something, as previous versions of the emulator did work with dynamic
> compilation turned on.  It seems to object to PROT_EXEC - no idea why,
> though reading around suggests it may be something to do with sandboxing.

Apple is tightening up the use of code generated at runtime, since code
injection is a common attack pathway.  It's not possible to do it at all on
iOS, for example.  For macOS, it appears you need to pass MAP_JIT to mmap()
and also have the feature enabled at code signing time:
https://github.com/dotnet/coreclr/issues/18617

I think you also need pages RW or RX - macOS has almost no pages that are
RWX and I suspect they want to keep it that way.

Theo

_______________________________________________
RPCEmu mailing list
RPCEmu@riscos.info
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu

Reply via email to