-
-
Notifications
You must be signed in to change notification settings - Fork 12
Description
There are some issues right now with the compiler. For example, many VTIL instructions and more exotic native registers lack implementation. Also, making vexit compile into a "ret" is a bad idea. I think it would make more sense to compile into an unconditional jmp to the operand of the vexit. Whoever wrote the compiler seems to think that VTIL routines should be subroutines with their own stack frame, but at least with vmprotect it makes more sense to think of them as code that could be executed inline with the native code wrapping vmenters, because a single vmenter rarely (maybe never?) represents a routine with its own stack frame and instead represent snippets of code that modify the stack of the "caller" (vmenterer?) I am not sure the facilities provided by asmjit for virtual register allocation are best suited to this project because they seem to be bound to the notion of a function with its own stack, perhaps a custom one will need to be built or a different library used.