I can honestly say that my least favourite part of VR is writing the shellcode.
Sometimes it is so painful I just resent the whole field.
Specifically what is painful is process continuation, or in this case kernel continuation which is exceptionally more difficult than userspace continuation.