Доступ к строке вызова инструкции CALLOTHER Pcode через Java API?
Oct 05 2020
Есть ли способ получить доступ к строке вызова инструкции CALLOTHER Pcode при повторении Pcode в Java? В листинге ниже показан пример того, что я имею в виду:
048
LAB_0001b034 XREF[1]: 0001b024(j)
0001b034 36 7f ff e6 rbit r7,r6
r7 = CALLOTHER "ReverseBitOrder", r6
В этом примере я хотел бы получить строку «ReverseBitOrder».
К сожалению, в инструкции нет подсказки, кроме этого входного объекта:
const:0x3c
Что не переводится в данную строку, и я также не могу щелкнуть строку, чтобы найти место в памяти. Я также просмотрел документы API Pcode, Instruction и т.д., но не нашел ничего полезного.
Ответы
1 mumbel Oct 05 2020 at 23:04
Есть 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()))