用IDA python解开提取指令
问题描述:
我用IDA Python解压二进制指令。但不幸的是,它并没有完全打印一些指令。例如,BCC,BCS,BEQ打印为B.有什么方法可以纠正这个问题吗? 这是我的代码!用IDA python解开提取指令
for function_ea in idautils.Functions():
for ins in idautils.FuncItems(function_ea):
if idaapi.isCode(idaapi.getFlags(ins)):
print idc.GetMnem(ins)
答
尝试类似的东西(我查了一下这个在我的数据库为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 - 在指定位置没有指令
注意:此功能可能不会返回与您在屏幕上看到的完全相同的助记符。
所以,如果你想看到完整的助记名称,你应该使用外部消散汇编器/插件或解析反汇编线。