Comment #15 on issue 1312 by [email protected]: It's time to get iOS supported!
http://code.google.com/p/v8/issues/detail?id=1312
Sorry, what I meant was "most likely this will indeed only work on jailbroken devices". :) I'm aware of the sandbox, and I know that mapping executable pages was prohibited in earlier iOS versions. What I haven't investigated is whether this is still the case in the latest iOS. If it is, then porting V8 to iOS is pointless if you're thinking about regular AppStore apps.
However, I'm building an open source reverse-engineering tool (http://code.google.com/p/frida-ire/) that requires a jailbroken device, so V8 is very useful to me. I'm linking it statically into a shared library which gets injected into running processes at an arbitrary point in time. The debugger, running on a desktop machine (Linux/Mac/Windows) communicates with this payload, and sends it scripts to run. A script may attach itself to any function in memory (just needs the address), and the supplied callback gets called whenever the given function gets called. (This is done through hot-patching the code in memory.) The callback can inspect the argument list, modify it, read/write to memory, etc. A bit like D-Trace, but in user-space, and runs on Windows, iPhone, and, as soon as I get around to finishing the Linux .so injector, also Linux and Android. Anyway, that was a long story; I just wanted to say that I think V8 is awesome even for building reverse-engineering tools and debuggers. :)
-- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
