是否有可能在 IDA 中看到一种关于函数的统计数据以及它们被引用的频率?在分析程序时,我发现它很有帮助。
经常被引用的函数通常是常见的功能。一个例子是这样的东西strcmp()
,malloc()/free()
,strlen()
,等。
其中一些很容易识别(如strcmp()
实现),并且尽早为这些函数命名,使其余部分的分析更容易。
是否有可能在 IDA 中看到一种关于函数的统计数据以及它们被引用的频率?在分析程序时,我发现它很有帮助。
经常被引用的函数通常是常见的功能。一个例子是这样的东西strcmp()
,malloc()/free()
,strlen()
,等。
其中一些很容易识别(如strcmp()
实现),并且尽早为这些函数命名,使其余部分的分析更容易。
可能有一种更简单的方法来获取某个函数的外部参照计数,但这对我有用。
from idaapi import *
funcs = Functions()
for f in funcs:
name = Name(f)
print "%s %d" % (name, len(list(XrefsTo(f))))
以下代码取自 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)
此函数还将突出显示调用以使跟踪更容易