def tables_from_heuristics(require_rtti=False):
''' Yields addresses of VTableGroups found via heuristic methods
'''
for s in idautils.Segments():
seg = idaapi.getseg(s)
if seg is None:
continue
if seg.type != idaapi.SEG_DATA:
continue
ea = seg.startEA
while ea < seg.endEA:
try:
table = VTableGroup(ea)
if require_rtti is True and ea.typeinfo is not None:
yield ea
elif require_rtti is False:
yield ea
ea += table.size
except ValueError:
# Assume vtables are aligned
ea += TARGET_ADDRESS_SIZE
评论列表
文章目录