在尝试确定在 DB 中的给定地址处定义了哪种类型的结构(因为isStruct(getFlags(ea))Returns True)时发现了一个有趣的问题。通读idc.py并没有多大帮助。
struct在“结构”窗口中定义一个。- 它被分配了一个
structID,因此,它可以从 IDC/Python 脚本访问。 - 现在,
struct在例如.data部分中的某处定义一个变量。
一个可靠的例子:
# Some Python code
strid = idaapi.get_struc_id('_s__RTTIClassHierarchyDescriptor')
size = idaapi.get_struc_size(strid)
idaapi.doStruct(ea, size, strid)
知道ea,我如何获得strid价值?