在 C 中,静态函数的作用域是源文件,因此您可以拥有多个同名的静态函数,只要它们在不同的文件中即可。
IDA 有没有办法表达这一点,还是我必须自己为名称添加前缀?我知道我可以将函数标记为静态并将源文件与范围关联(使用add_sourcefile),但这似乎无法解决命名冲突。
在 C 中,静态函数的作用域是源文件,因此您可以拥有多个同名的静态函数,只要它们在不同的文件中即可。
IDA 有没有办法表达这一点,还是我必须自己为名称添加前缀?我知道我可以将函数标记为静态并将源文件与范围关联(使用add_sourcefile),但这似乎无法解决命名冲突。
如果我正确理解你,你正在寻找的是这个 IDA 插件......
for api_row in api_matrix:
l = api_row[0]
print l
apis = api_row[1:]
for api in apis:
ref_addrs = CodeRefsTo(LocByName(api),0)
for ref in ref_addrs:
func_addr = LocByName(GetFunctionName(ref))
func_name = GetFunctionName(ref)
if l not in func_name:
MakeNameEx(func_addr , l + '_' + func_name , SN_NOWARN)
print "complete"
学分转到:http : //hooked-on-mnemonics.blogspot.fr/2012/06/automated-generic-function-naming-in.html
我建议阅读该文章以了解如何使用它。^