在尝试确定在 DB 中的给定地址处定义了哪种类型的结构(因为isStruct(getFlags(ea))
Returns True
)时发现了一个有趣的问题。通读idc.py
并没有多大帮助。
struct
在“结构”窗口中定义一个。- 它被分配了一个
struct
ID,因此,它可以从 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
价值?