用idapython解构extract指令

2024-09-27 02:27:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用idapython来提取二进制文件的指令。但不幸的是,它并没有完全打印一些指令。例如,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)

Tags: 文件方法infor指令二进制functionins
2条回答

BCCBCS和{}是条件分支指令,因此具有相同的操作码。B之后的所有内容都是条件代码,其中:

  • 情商相等
  • CC已清除
  • CS是进位集

有关详细信息,请参见12。在

尝试类似的方法(我在我的数据库中查看了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手册:

Get instruction mnemonics

ea - linear address of instruction

returns: 0 - no instruction at the specified location

note: this function may not return exactly the same mnemonics as you see on the screen.

所以,如果你想看到完整的助记符名,你应该使用外部解释器/插件或解析反汇编行。在

相关问题 更多 >

    热门问题