monkey_amd64.go 331 B

1234567891011121314151617
  1. package monkey
  2. // Assembles a jump to a function value
  3. func jmpToFunctionValue(to uintptr) []byte {
  4. return []byte{
  5. 0x48, 0xBA,
  6. byte(to),
  7. byte(to >> 8),
  8. byte(to >> 16),
  9. byte(to >> 24),
  10. byte(to >> 32),
  11. byte(to >> 40),
  12. byte(to >> 48),
  13. byte(to >> 56), // movabs rdx,to
  14. 0xFF, 0x22, // jmp QWORD PTR [rdx]
  15. }
  16. }