【问题标题】:Disassmbling with IDA python for extract instruction使用 IDA python 拆卸以获取提取指令
【发布时间】:2018-03-15 15:51:59
【问题描述】:

我正在使用 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)

【问题讨论】:

    标签: python arm reverse-engineering disassembly ida


    【解决方案1】:

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

    • 情商相等
    • CC 清零
    • CS 是进位设置

    请参阅12 了解更多信息。

    【讨论】:

      【解决方案2】:

      试试类似的方法(我在我的 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 - 指定位置没有指令

      注意:此功能可能 不会返回与您在屏幕上看到的完全相同的助记符。

      因此,如果您想查看完整的助记符名称,您应该使用外部反汇编程序/插件或解析反汇编行。

      【讨论】:

        猜你喜欢
        • 2015-06-04
        • 2013-10-22
        • 2014-01-04
        • 2016-02-13
        • 1970-01-01
        • 2015-06-26
        • 2011-09-13
        • 2021-01-19
        • 1970-01-01
        相关资源
        最近更新 更多