Donut: Generates x86 and x64 position-independent shellcode