[Vm-dev] Mars, stuck on callbacks (again)... need opinions

John M McIntosh johnmci at smalltalkconsulting.com
Thu Dec 23 23:12:55 UTC 2010

At WWDC 2009 I had a long chat with the manager of the iOS security team at the time I was exploring options for JIT VMs.

mmap & mprotect are BSD unix/etc  non-compliant as there is no way for *you* to set the execute bit on a page. We did discuss perhaps in 
an enterprise environment you could have certificates and signing to give you different rights, like say to set page tags, but that has never been offered.

Obviously you *can* set it, but only if you jail break or root the iOS.  But I do recall seeing an article pass my desk the other day saying that Apple was 
slowing winning the war there because the time between IOS revisions and jail breaking was increasing and at some point it tips over the fence where 
it takes too long to break. This is not to say it's impossible, rather it becomes not worth pursuing for *casual enjoyment*... 

On 2010-12-23, at 3:00 PM, Andreas Raab wrote:

> On 12/23/2010 2:49 PM, John M McIntosh wrote:
>> Well I"m not sure what is being suggested here, but on iOS a shared library is marked as read and executable, NOT writable. so you can't do self modifying code...
>> Unless you are saying you'd like to on macintel generate arm code and stick it into a shared library for later loading and execution on iOS?
> Yup. Of course. It's pretty obvious that shared libs would've to be read-only on iOS. And I would also expect that there's no call to set the executable bit on a file (otherwise you could create a new shared lib).
> Cheers,
>  - Andreas

John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com

More information about the Vm-dev mailing list