有没有办法在创建函数时指定函数的名称idc.MakeFunction()
?
如果没有,重命名函数的最佳做法是什么?我发现idc.GetFunctionName(ea)
但没有对应的名称来设置。谷歌研究发现了一些人们使用idc.MakeNameEx()
. 然而,目的MakeNameEx
似乎是重命名地址:
def MakeNameEx(ea, name, flags): """ Rename an address
@param ea: linear address
@param name: new name of address. If name == "", then delete old name @param
flags: combination of SN_... constants
并涉及一大堆标志,例如:
[...]
SN_NOCHECK = idaapi.SN_NOCHECK # Replace invalid chars with SubstChar
SN_PUBLIC = idaapi.SN_PUBLIC # if set, make name public
SN_NON_PUBLIC = idaapi.SN_NON_PUBLIC # if set, make name non-public
SN_WEAK = idaapi.SN_WEAK # if set, make name weak
SN_NON_WEAK = idaapi.SN_NON_WEAK # if set, make name non-weak
[...]
我需要的是一个函数的简单重命名,保留其所有属性、标志等......