我正在使用IDA Python来提取二进制文件的指令。但遗憾的是,它并没有完全打印出一些说明。例如,BCC,BCS,BEQ打印为B.有什么方法可以解决这个问题吗? 这是我的代码!!!
for function_ea in idautils.Functions():
for ins in idautils.FuncItems(function_ea):
if idaapi.isCode(idaapi.getFlags(ins)):
print idc.GetMnem(ins)
答案 0 :(得分:2)
答案 1 :(得分:1)
尝试类似的东西(我在我的ARM数据库上检查过这个):
import idautils
for function_ea in idautils.Functions():
for ins in idautils.FuncItems(function_ea):
if idaapi.isCode(idaapi.getFlags(ins)):
cmd = idc.GetDisasm(ins)
mnem = cmd.split(' ')[0]
print mnem
来自IDA手册:
获取指令助记符
ea - 指令的线性地址
返回:0 - 指定位置没有指令
注意:此功能可能 不会返回与您在屏幕上看到的完全相同的助记符。
因此,如果你想看到完整的助记符名称,你应该使用外部的dissasembler / plugin或解析反汇编代码。