Acessando a string de chamada da instrução CALLOTHER Pcode via API Java?
Existe uma maneira de acessar a string de chamada de uma instrução CALLOTHER Pcode ao iterar sobre o Pcode em Java? A lista abaixo mostra um exemplo do que quero dizer:
048
LAB_0001b034 XREF[1]: 0001b024(j)
0001b034 36 7f ff e6 rbit r7,r6
r7 = CALLOTHER "ReverseBitOrder", r6
Neste exemplo, gostaria de obter a string "ReverseBitOrder".
Infelizmente, não há nenhuma dica nas informações da instrução, exceto para este objeto de entrada:
const:0x3c
O que não se traduz na string dada e também não consigo clicar na string para encontrar um local na memória. Também olhei os documentos da API de Pcode, Instruction etc., mas não encontrei nada útil.
Respostas
Existe um ghidra_script que o atual faz isso, veja https://github.com/NationalSecurityAgency/ghidra/blob/master/Ghidra/Features/Base/ghidra_scripts/MarkCallOtherPcode.java
basicamente:
op = getInstructionAt(toAddr(0x1b034)).getPcode()[0]
currentProgram.getLanguage().getUserDefinedOpName(op.getInput(0).getOffset()))