经常引用的功能通常是常见功能。例如
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