Files
idapython-src/examples/disassembler/list_segment_functions_using_idautils.py
2025-03-13 16:17:53 +01:00

46 lines
1.1 KiB
Python

"""
summary: list all functions (and cross-references) in segment
description:
List all the functions in the current segment, as well as
all the cross-references to them.
Contrary to @list_segment_functions, this uses the somewhat
higher-level `idautils` module.
keywords: xrefs
see_also: list_segment_functions
level: beginner
"""
import ida_kernwin
import ida_idaapi
import ida_segment
import ida_funcs
import idautils
def main():
# Get current ea
ea = ida_kernwin.get_screen_ea()
if ea == ida_idaapi.BADADDR:
print("Could not get get_screen_ea()")
return
seg = ida_segment.getseg(ea)
if seg:
# Loop from start to end in the current segment
for funcea in idautils.Functions(seg.start_ea, seg.end_ea):
print("Function %s at 0x%x" % (ida_funcs.get_func_name(funcea), funcea))
# Find all code references to funcea
for ref in idautils.CodeRefsTo(funcea, 1):
print(" called from %s(0x%x)" % (ida_funcs.get_func_name(ref), ref))
else:
print("Please position the cursor within a segment")
if __name__=="__main__":
main()