从本地类型视图中获取所有序数

逆向工程 艾达 蟒蛇
2021-06-27 23:39:07

有没有办法使用ida python api获取本地类型视图的所有序数?

我曾试图把所有的序号与结构:[ida_struct.get_struc(id).ordinal for _, id, _ in Structs()]如果您用 Enums() 替换 Structs() ,这也适用于枚举,但这并不完整。有些结构只是在本地类型视图中,我不知道如何获得这个序数。

1个回答

应该这样做:您需要遍历由 返回的本地类型信息库中定义的所有序数get_idati()它们令人讨厌地索引为 1-up。对于每个序数,您可以获得对应的tinfo_twith 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