[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