|
@@ -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
|