[quake3] QVM vs. shared libs
LinuxManMikeC
linuxmanmikec at gmail.com
Fri Jun 8 17:58:19 EDT 2007
On 6/8/07, Ben Noordhuis <bnoordhuis at gmail.com> wrote:
> On 6/8/07, LinuxManMikeC <linuxmanmikec at gmail.com> wrote:
> > QVM is bytecode that needs a little interpreting done at runtime.
> > [...] The QVM is more secure because a mod won't be able to do all
> > kinds of voodoo to break out of the game's memory space.
>
> Better cross-platform portability? Yes. More secure? Well, no. The
> QVMs are JIT-compiled to native code on most architectures. A shell
> code snippet like the one below will execute without a hitch on 32 and
> 64 bits Linux.
>
> /* syscall exit() */
> static void die(void) {
> unsigned char shellcode[] = {
> 0x31, 0xC0, /* xorl %eax, %eax */
> 0x40, /* incl %eax */
> 0x89, 0xC3, /* movl %eax, %ebx */
> 0xCD, 0x80 /* int $0x80 */
> };
> ((void (*)(void))shellcode)();
> }
>
Cool, learned something, thanks.
More information about the quake3
mailing list