我应该如何在 IDA 中命名静态函数?

逆向工程 艾达
2021-06-27 22:49:45

在 C 中,静态函数的作用域是源文件,因此您可以拥有多个同名的静态函数,只要它们在不同的文件中即可。

IDA 有没有办法表达这一点,还是我必须自己为名称添加前缀?我知道我可以将函数标记为静态并将源文件与范围关联(使用add_sourcefile),但这似乎无法解决命名冲突。

1个回答

如果我正确理解你,你正在寻找的是这个 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

我建议阅读该文章以了解如何使用它。^