如何使用 ppc 处理器 (IDAPython) 获取汇编操作码

逆向工程 艾达 部件 蟒蛇
2021-06-18 08:37:27

在 IDAPython 中,您可以使用Assemble(ea, line)函数获取汇编指令的相应操作码


下面是一个使用 PE 文件/x86 处理器类型的示例:

Python>Assemble(FirstSeg(), 'asdf')
Invalid mnemonic -> OK
(False, 'Assembler failed: asdf')

正如我们所看到的,Assemble调用返回False并打印使用像一个不正确的汇编指令,当一个无效的记忆一个错误信息asdf

使用有效的汇编指令,将返回正确的操作码:

Python>Assemble(FirstSeg(), 'ret')
(True, '\xc3')

这是使用 PPC-ELF/ppc 处理器类型的相同函数:

Python>Assemble(FirstSeg(), 'asdf')
(True, '\x00')

正如我们所见,没有打印错误消息,并且\x00返回 a 作为结果操作码。

有效sc指令和任何其他有效 ppc 指令返回相同(错误)的值\x00

Python>Assemble(FirstSeg(), 'sc')
(True, '\x00')

Assemble(ea, line)使用 PPC-ELF/ppc 处理器类型时,如何让 IDAPython返回正确的操作码?

这是函数采用的跟踪:

  1. 组装(EA,线)
  2. _Assemble(ea, line)
  3. idaapi.AssembleLine(ea, cs, ip, use32, line)

还有一个 Assemble() 的用法示例,如果不清楚:https : //code.google.com/p/idapython/source/browse/trunk/Scripts/FindInstructions.py

0个回答
没有发现任何回复~