使用 IDA python 反汇编提取指令
Disassmbling with IDA python for extract instruction
我正在使用 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)
BCC
、BCS
和 BEQ
是条件分支指令,因此具有相同的操作码。 B
之后的所有内容都是条件代码,其中:
- 情商相等
- CC 进位清除
- CS为进位集
尝试类似的方法(我在我的 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.
所以,如果你想看到完整的助记名称,你应该使用外部 dissasembler/plugin 或解析反汇编代码。
我正在使用 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)
BCC
、BCS
和 BEQ
是条件分支指令,因此具有相同的操作码。 B
之后的所有内容都是条件代码,其中:
- 情商相等
- CC 进位清除
- CS为进位集
尝试类似的方法(我在我的 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.
所以,如果你想看到完整的助记名称,你应该使用外部 dissasembler/plugin 或解析反汇编代码。