Browse Source

Skip class parent dumping and use the map

nosoop 11 months ago
parent
commit
9e83f5949e
1 changed files with 1 additions and 5 deletions
  1. 1 5
      src/smgdc/vtable.py

+ 1 - 5
src/smgdc/vtable.py

@@ -47,13 +47,9 @@ def reorder_vfns_windows_estimate(symbols: list[Symbol], start_pos: int) -> list
 
 def get_windows_vtables_from(bin: "LinuxBinary", vt: Symbol) -> VTable:
     vtda = bin.vtable_disambiguator
-    vt_typeinfo = bin.angr.loader.memory.unpack_word(vt.rebased_addr + 0x4)
 
     vt_parent_spans = [0]
-    for typeinfo_ptr, name in reversed(list(vtda.dump_class_parents(vt_typeinfo))):
-        vt_parent = bin.angr.loader.find_symbol(f"_ZTV{name}")
-        if not vt_parent:
-            continue
+    for vt_parent in reversed(vtda.superclass_map[vt]):
         vt_parent_first, *_ = vtda.get_vfptrs_from_table(vt_parent)
 
         # it's possible for a parent table to have more functions than its child