Ayuto

Dump vtable

Nov 15th, 2020
1,398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.64 KB | None | 0 0
  1. import memory
  2. from players.entity import Player
  3.  
  4. def dump_vtable(binary, vtable):
  5.     index = 0
  6.     while True:
  7.         vfunc = vtable.get_pointer(index*4)
  8.         if not vfunc:
  9.             break
  10.  
  11.         name = address_to_symbol(binary, vfunc)
  12.         print(f'{index:03}: {name}')
  13.         index += 1
  14.  
  15. def get_vtable(obj):
  16.     return memory.get_object_pointer(obj).get_pointer()
  17.  
  18. def address_to_symbol(binary, ptr):
  19.     server = memory.find_binary(binary)
  20.     for symbol, addr in server.symbols.items():
  21.         if addr == ptr:
  22.             return symbol
  23.  
  24.     return f'sub_{ptr.address}'
  25.  
  26. dump_vtable('server', get_vtable(Player(1)))
Advertisement
Add Comment
Please, Sign In to add comment