通过 Java API 访问 CALLOTHER Pcode 指令的调用字符串?

逆向工程 吉德拉 爪哇 接口 称呼
2021-07-08 19:36:58

在 Java 中迭代 Pcode 时,有没有办法访问 CALLOTHER Pcode 指令的调用字符串?下面的清单显示了我的意思的一个例子:

048
                             LAB_0001b034                                    XREF[1]:     0001b024(j)  
        0001b034 36 7f ff e6     rbit       r7,r6
                                                      r7 = CALLOTHER "ReverseBitOrder", r6

在这个例子中,我想得到字符串“ReverseBitOrder”。
不幸的是,除了这个输入对象外,指令信息中没有提示:

const:0x3c

这不会转换为给定的字符串,我也无法单击该字符串以在内存中查找位置。我还查看了 Pcode、Instruction 等的 API 文档,但没有找到任何有用的信息。

1个回答

当前有一个 ghidra_script 执行此操作,请参阅https://github.com/NationalSecurityAgency/ghidra/blob/master/Ghidra/Features/Base/ghidra_scripts/MarkCallOtherPcode.java

基本上:

op = getInstructionAt(toAddr(0x1b034)).getPcode()[0]
currentProgram.getLanguage().getUserDefinedOpName(op.getInput(0).getOffset()))