是否有一种方法可以使用ida python api获取本地类型视图的所有序数?

我尝试使用[ida_struct.get_struc(id).ordinal for _, id, _ in Structs()]获取结构的所有序数。如果将Structs()替换为Enums(),但这也适用于枚举,但这还不完整。有些结构只是在本地类型视图中,我不知道如何获取此序数。

评论

请添加您已经尝试过的内容。

我试着用[[ida_struct.get_struc(id).ordinal for _,id,_ in Structs())获取结构的所有序数。如果将Structs()替换为Enums(),但这也适用于枚举,但这还不完整。有些结构只是在本地类型视图中,我不知道如何获取此序数。

请输入您的问题,以便人们在跳出问题之前可以看到您做了一些工作。

#1 楼

应该这样做:您需要遍历get_idati()返回的本地类型信息库中定义的所有序数。他们烦人地索引了1-up。对于每个序数,您都可以获得带有tinfo_t的相应get_numbered_type



import ida_typeinf

idati = ida_typeinf.get_idati()

for ordinal in xrange(1, ida_typeinf.get_ordinal_qty(idati)+1):
    ti = ida_typeinf.tinfo_t()
    if ti.get_numbered_type(idati, ordinal):
        print ordinal, ti