您可以从idainfo
结构中获取处理器的名称:
import idaapi
info = idaapi.get_inf_structure()
if info.is_64bit():
bits = 64
elif info.is_32bit():
bits = 32
else:
bits = 16
try:
is_be = info.is_be()
except:
is_be = info.mf
endian = "big" if is_be else "little"
print 'Processor: {}, {}bit, {} endian'.format(info.procName, bits, endian)
# Result: Processor: mipsr, 32bit, big endian
尽管如此,仍然没有找到字节序。
编辑:字节序可以由处理器名称确定。例如,mipsr
是大端,mipsrl
是小端。
编辑:
添加了正确的字节序检查(mf
== MSB First)。基于这个答案。
编辑:
从 IDA7 beta 3 (170724) 开始,idainfo.mf 被删除,必须使用 idainfo.is_be()。基于键区