Q : Как перечислить все функции в файле
Для этого нам нужно несколько функций
idautils.Segments()
возвращает список всех сегментов в бинарном файле
idc.SegStart(ea)
возвращает начальный адрес сегмента или BADADDR
ea - любой адрес в сегменте
idc.SegEnd(ea)
возвращает конечный адрес сегмента или BADADDR
ea - любой адрес в сегменте
idaapi.Functions(start, end)
возвращает список всех функций попавших в отрезок start - end
idc.GetFunctionName(ea)
возвращает имя функции по указанному адресу или пустую строку в случае если функции нет.
Код :
Для этого нам нужно несколько функций
idautils.Segments()
возвращает список всех сегментов в бинарном файле
idc.SegStart(ea)
возвращает начальный адрес сегмента или BADADDR
ea - любой адрес в сегменте
idc.SegEnd(ea)
возвращает конечный адрес сегмента или BADADDR
ea - любой адрес в сегменте
idaapi.Functions(start, end)
возвращает список всех функций попавших в отрезок start - end
idc.GetFunctionName(ea)
возвращает имя функции по указанному адресу или пустую строку в случае если функции нет.
Код :
Код:
# Перечисляем все сегменты в файле, тк кодовых сегментов может быть несколько
for segEa in Segments():
# Перечисляем все функции в границах сегмента
for funcEa in Functions(SegStart(segEa), SegEnd(segEa)):
name = GetFunctionName(funcEa)
print "func %s at 0x%x" % (name, funcEa)