是否可以在IDA中查看有关功能的统计信息以及引用频率?在分析程序时,我发现它很有帮助。

经常引用的功能通常是常见功能。例如strcmp()malloc()/free()strlen()等。

其中一些很容易识别(例如strcmp()实现),并在早期就为这些功能命名,其余的分析更加容易。

#1 楼

可能有一种更简单的方法来将XrefsTo计数获取到某个函数,但这对我有用。

from idaapi import *
funcs = Functions()
for f in funcs:
   name = Name(f)
   print "%s %d" % (name, len(list(XrefsTo(f))))


#2 楼

以下代码取自GreyHat Python,与以前的答案非常相似:

from idaapi import *
funcs = ["malloc","free","strcmp"]

for f in funcs:
   curAddr = LocByName(f)
   if curAddr != BADADDR:
      xrefs = CodeRefsTo(curAddr,0)
      print "Cross References to %s" % f
      for ref in xrefs:
         print "08x" % ref
         SetColor(ref,CIC_ITEM,0x0000ff)


此函数还将突出显示该调用,以使其更容易跟踪

评论


这假定函数已经被命名,而@Devolus希望通过首先检查具有高XREF计数的函数来标识这些公共函数(当名称未知时)。

– ixje
13年11月2日在8:05

我知道,但我认为这些信息可能仍然派上用场。

–Fewmitz
13年3月3日,0:52