val.ServiceLimit = limit val.ArgumentTable = args function_names = {} for i, val in enumerate(values): if not val.ServiceTable: continue remapped = [omap_rev.remap(f) for f in val.ServiceTable] for sym in gsyms.globals: if not hasattr(sym, 'offset'): continue try: virt_base = sects[sym.segment - 1].VirtualAddress except IndexError: continue off = sym.offset for j, f in enumerate(remapped): if f == virt_base + off: ordinal = i << 12 | j function_names[ordinal] = sym.name #print "Found %s for function %x" % (sym.name,ordinal) for i, val in enumerate(values): if not val.ServiceTable: continue for j in range(val.ServiceLimit): ordinal = i << 12 | j print("Ordinal %#06x Name: %s Args: %d (%#x bytes) Offset: %#x" % (ordinal, undecorate( function_names[ordinal])[0], val.ArgumentTable[j] / 4, val.ArgumentTable[j], val.ServiceTable[j]))
# print i, hex(f), hex(a) val.ServiceTable = functions val.ServiceLimit = limit val.ArgumentTable = args function_names = {} for i, val in enumerate(values): if not val.ServiceTable: continue remapped = [omap_rev.remap(f) for f in val.ServiceTable] for sym in gsyms.globals: if not hasattr(sym, 'offset'): continue try: virt_base = sects[sym.segment - 1].VirtualAddress except IndexError: continue off = sym.offset for j, f in enumerate(remapped): if f == virt_base + off: ordinal = i << 12 | j function_names[ordinal] = sym.name #print "Found %s for function %x" % (sym.name,ordinal) for i, val in enumerate(values): if not val.ServiceTable: continue for j in range(val.ServiceLimit): ordinal = i << 12 | j print("Ordinal %#06x Name: %s Args: %d (%#x bytes) Offset: %#x" % (ordinal, undecorate( function_names[ordinal])[0], val.ArgumentTable[j] / 4, val.ArgumentTable[j], val.ServiceTable[j]))
for i, val in enumerate(values): if not val.ServiceTable: continue remapped = [omap_rev.remap(f) for f in val.ServiceTable] for sym in gsyms.globals: try: virt_base = sects[sym.segment - 1].VirtualAddress except IndexError: continue off = sym.offset for j, f in enumerate(remapped): if f == virt_base + off: ordinal = i << 12 | j function_names[ordinal] = sym.name # print "Found %s for function %x" % (sym.name,ordinal) for i, val in enumerate(values): if not val.ServiceTable: continue for j in range(val.ServiceLimit): ordinal = i << 12 | j print "Ordinal %#06x Name: %s Args: %d (%#x bytes) Offset: %#x" % ( ordinal, undecorate(function_names[ordinal])[0], val.ArgumentTable[j] / 4, val.ArgumentTable[j], val.ServiceTable[j], )
val.ServiceTable = functions val.ServiceLimit = limit val.ArgumentTable = args function_names = {} for i,val in enumerate(values): if not val.ServiceTable: continue remapped = [omap_rev.remap(f) for f in val.ServiceTable] for sym in gsyms.globals: if not hasattr(sym, 'offset'): continue try: virt_base = sects[sym.segment-1].VirtualAddress except IndexError: continue off = sym.offset for j,f in enumerate(remapped): if f == virt_base+off: ordinal = i << 12 | j function_names[ordinal] = sym.name #print "Found %s for function %x" % (sym.name,ordinal) for i,val in enumerate(values): if not val.ServiceTable: continue for j in range(val.ServiceLimit): ordinal = i << 12 | j print "Ordinal %#06x Name: %s Args: %d (%#x bytes) Offset: %#x" % (ordinal, undecorate(function_names[ordinal])[0], val.ArgumentTable[j] / 4, val.ArgumentTable[j], val.ServiceTable[j])
# print i, hex(f), hex(a) val.ServiceTable = functions val.ServiceLimit = limit val.ArgumentTable = args function_names = {} for i,val in enumerate(values): if not val.ServiceTable: continue remapped = [omap_rev.remap(f) for f in val.ServiceTable] for sym in gsyms.globals: try: virt_base = sects[sym.segment-1].VirtualAddress except IndexError: continue off = sym.offset for j,f in enumerate(remapped): if f == virt_base+off: ordinal = i << 12 | j function_names[ordinal] = sym.name #print "Found %s for function %x" % (sym.name,ordinal) for i,val in enumerate(values): if not val.ServiceTable: continue for j in range(val.ServiceLimit): ordinal = i << 12 | j print "Ordinal %#06x Name: %s Args: %d (%#x bytes) Offset: %#x" % (ordinal, undecorate(function_names[ordinal])[0], val.ArgumentTable[j] / 4, val.ArgumentTable[j], val.ServiceTable[j])