disassemble.rs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // SPDX-License-Identifier: (Apache-2.0 OR MIT)
  2. // Copyright 2017 6WIND S.A. <quentin.monnet@6wind.com>
  3. extern crate rbpf;
  4. use rbpf::disassembler;
  5. // Simply disassemble a program into human-readable instructions.
  6. fn main() {
  7. let prog = &[
  8. 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  9. 0x79, 0x12, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00,
  10. 0x79, 0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
  11. 0xbf, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  12. 0x07, 0x03, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
  13. 0x2d, 0x23, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
  14. 0x69, 0x12, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
  15. 0x55, 0x02, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
  16. 0x71, 0x12, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00,
  17. 0x55, 0x02, 0x0e, 0x00, 0x06, 0x00, 0x00, 0x00,
  18. 0x18, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
  19. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  20. 0x79, 0x11, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00,
  21. 0xbf, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  22. 0x57, 0x02, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
  23. 0x15, 0x02, 0x08, 0x00, 0x99, 0x99, 0x00, 0x00,
  24. 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
  25. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  26. 0x5f, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  27. 0xb7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
  28. 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x99, 0x99,
  29. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  30. 0x1d, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  31. 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  32. 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  33. ];
  34. disassembler::disassemble(prog);
  35. }